Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 20 odgovora
  • 10.935 pregleda

Najnovija ↓

RND funkcija - zasto je uvejk isti niz... 02.11.2004. u 16:24 · pre 267 meseci #1
Cao,
kako da napravim funkciju koja rnd izdaje
rnd (slucajan) broj?

srand((unsigned) time(NULL));
rez=(int) rand();

Ovo mi non stop izbacuje isti niz rnd brojeva!?
Moze i on da se nekako iskoristi ali mora da postoji laksi nacin?
MM
Potpis
The sleeper has awaken
Re: RND funkcija - zasto je uvejk isti niz... 02.11.2004. u 16:28 · pre 267 meseci #2
generator inicijalizujes samo jednom na pocetku programa, ili ce ti niz uvek biti isti,
pogledaj parmetre za srand
Potpis

So Long, and Thanks for All the Fish


Re: RND funkcija - zasto je uvejk isti niz... 02.11.2004. u 17:19 · pre 267 meseci #4
Verovatno si hteo da kazes da je rand() generator pseudo-slucajnih brojeva.
srand() je funkcija koja inicijalizuje generator pseudo-slucajnih brojeva, odnosno inicijalizuje interne parametre generatora, commonly referred to as seed.
Potpis
O_o
Re: RND funkcija - zasto je uvejk isti niz... 02.11.2004. u 21:44 · pre 267 meseci #6
Citat:
Dragi Tata: srand je generaator pseudo-slučajnih brojeva. Ako ti trebaju istinski slučajni brojevi, pogledaj:

http://www.boost.org/libs/random/


odlican link, ja sam imam negde po disku source za algoritam koji daje periodu od 2^144-1 i to sam vikao da je ultra mocno a sada vidim da ima i vecih zverkica.

Nego DT imas li jos ovako dobrih linkova u rukavu ?
Potpis
http://speedy-order.com
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 00:17 · pre 267 meseci #7
Pa u principu znam kako DT nalazi te linkove. Kada ti treba neka biblioteka prvo pogledas da li ima medju http://www.boost.org/ blibliotekama. Ako je u pitanju rasprava o dizajnu koda onda DT kupi linkove sa:
http://www.gotw.ca/gotw/
http://www.cuj.com/articles/
http://www.artima.com/index.jsp
http://www.ddj.com/topics/cpp/
http://www.research.att.com/~bs/C++.html

Kada neki pita kako da uradi nesto (koristi threads, IPC, tutorials, ovo ono...) onda mu da linkove sa www.codeproject.com

Pored toga se nadje mozda poneki link koji govori o jednoj stvari ali ovi gore sajtovi su mu osnovni za trazenje svega i svacega.
DT, da li sam dobro procenio tvoj tok razmisljanja?
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 01:16 · pre 267 meseci #8
Citat:
Dragi Tata: srand je generaator pseudo-slučajnih brojeva. Ako ti trebaju istinski slučajni brojevi, pogledaj

hm, da li zaista postoje generatori pravih slučajnih brojeva?
Potpis
ex. trooper
Oh goody... it's my Illudium PU-36 Explosive Space Modulator!
Softversko Inženjerstvo
♪♫♪
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 01:59 · pre 267 meseci #11
Citat:
trooper: hm, da li zaista postoje generatori pravih slučajnih brojeva?

Naravno. Npr. http://www.randomnumbergenerator.nl/rng/home.html
Uredjaji ovakvog bazirani su na elektronskom izvoru suma koji radi na principu odredjenog slucajnog fizickog procesa (npr. lavinski proboj PN spoja).
Za razliku od softverskih generatora slucajnih brojeva, ovi generatori se ne mogu "inicijalizacijom internih parametara" dovesti u stanje nakon kojeg su rezultati ponovljivi.
Potpis
O_o
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 04:05 · pre 267 meseci #12
Kada nadjes jedan proces u prirodi koji se stvarno slucajno desava onda - postoji.

Ja bi naprimer generisao slucajne brojeve na osnovu variranja napona u el.mrezi.
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 09:23 · pre 267 meseci #13
Citat:
srand je generaator pseudo-slučajnih brojeva. Ako ti trebaju istinski slučajni brojevi, pogledaj:
Svi programski generatori daju pseudoslučajne brojeve. Čak ni boost biblioteka ne može ništa protiv toga, osim ako ne koristi neki stvarno slučajan (dakle eksterni) proces, sa spektralnom gustinom srednje snage (dovoljno) približnom belom šumu.
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 09:26 · pre 267 meseci #14
Imas pristojne slucajne brojeve na raznim *nix-ima /dev/random i /dev/urandom (ovaj drugi je malo manje slucajan). Imas manual za ovo "man 4 random"...
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 14:03 · pre 267 meseci #15
Hmm, ako sam dosao do dobrog zakljucka:
ili treba da preuzmem neki fajl pun rnd brojeva ili da se vezem na napon
pa da zaigram?
MM
Potpis
The sleeper has awaken
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 14:26 · pre 267 meseci #16
Ok, OK, I stand corrected.

Citat:
srki: Pa u principu znam kako DT nalazi te linkove. Kada ti treba neka biblioteka prvo pogledas da li ima medju http://www.boost.org/ blibliotekama. Ako je u pitanju rasprava o dizajnu koda onda DT kupi linkove sa:
http://www.gotw.ca/gotw/
http://www.cuj.com/articles/
http://www.artima.com/index.jsp
http://www.ddj.com/topics/cpp/
http://www.research.att.com/~bs/C++.html

Kada neki pita kako da uradi nesto (koristi threads, IPC, tutorials, ovo ono...) onda mu da linkove sa www.codeproject.com


Skoro da si u pravu. Boost nemam šta da "gledam" - znam šta tamo ima jer ga koristim svakodnevno. Boost biblioteke su "predvorje standarda" i okosnica modernog C++ programiranja. I Code Project pratim redovno, pa je samo problem da se setim gde se tačno nalazi traženo rešenje.

Što se tiče ostalih sajtova (osim ddj-a koji ne posećujem) njih "čituckam" u slobodno vreme, pa ih povremeno koristim kao izvor.
Potpis
IOCC
Re: RND funkcija - zasto je uvejk isti niz... 03.11.2004. u 16:31 · pre 267 meseci #17
Citat:
 Hmm, ako sam dosao do dobrog zakljucka:
ili treba da preuzmem neki fajl pun rnd brojeva ili da se vezem na napon
pa da zaigram?
A da probaš da nam pošalješ ceo program koji daje uvek istu sekvencu brojeva, pa da vidimo o čemu se tačno radi? Mirišem da nisi dobro objasnio šta ti treba, jer pravi slučajni brojevi ti u većini računarskih primena nisu neophodni.

f
Re: RND funkcija - zasto je uvejk isti niz... 08.11.2004. u 15:02 · pre 267 meseci #18
Problem je bio u sledecem:
gore navedeni kod (2 reda) je smesten u f-ju koja je samo
vracala rnd.
Problem je bio u tome sto bi ta f-ja vratila u prvih 5-6 poziva isti br(!?) a u
narednih opet 5-6 drugi?! itd...
Ovo sam resio tako sto bih pozvao u f-ji br svaki sledeci put po jednom vise
i (ala sam ga sad iskomplikovao :) tada bi mi dao 2,3,4. po redu rnd br
koji mi u stvari i odgovara.
*****************************************************
int f_random(int min_random, int max_random_br,int koji_po_redu_rnd) //vraca jednocifren int koji je random
{ int rez=max_random_br+1;
srand((unsigned) time(NULL));
for(int i=0;i<=koji_po_redu_rnd;i++)
{ rez=0;
while(rez<min_random)
{ rez=(int) rand();
rez=(int) (rez- ( (int)(rez/max_random_br)*max_random_br ));
};
};
cout<<"*********************"<<rez<<"********"<<endl;
return rez;

};
**********************************************************
I to bi bilo otprilike to ...
MM
Potpis
The sleeper has awaken
Re: RND funkcija - zasto je uvejk isti niz... 14.11.2004. u 14:57 · pre 267 meseci #19
Ako koristis kojeg bilo vida UNIX-a, onda najbolje resenje ti je:

fopen("/dev/random","rb");

/dev/random ti je najbolji moguci softverski random generator, posto svoje entropije skuplja iz internih parametra kernela i stanje drajvera u sistemu. Poenta random generatora je ustvari da se ne moze predvideti sledeci broj, a ukoliko se koristi neka funkcija za generiranje random broja koja ne uzima parametre iz kernela, onda se ista moze predvideti. Jedini problem sa /dev/random ti je da iz tog fajla ne moze procitati nista dok se kernelova entropija ne zadovolji. Ukoliko ti ne treba tolika slucajnost nego ti treba samo pseudo random, onda /dev/urandom (ovaj ne blokira read() pozive ukoliko mu entropy pool nije zadovoljen). Najbolje kako sto je neko ranije reko man 4 random. Ali u principu ako nisi vezan za Windowsima, onda /dev/(u)random.

---------
To sto ti funkcija vracala istu vrednost prvih nekoliko puta to ti je posto je pozvana u istu sekundu, elem srand seed je pozvan istim parametrom. Tako da pokusaj da ubacis jedan sleep(1000) izmegju svakog poziva funkcije ako toliko zelis da exploatiras te funckije.
Potpis
People who think they know everything tend to irritate those of us who do.
Re: RND funkcija - zasto je uvejk isti niz... 17.11.2004. u 11:22 · pre 267 meseci #20
Ne odgovara mi sleep,
jer hocu da imam mnogo rnd dogadjaja.
Cak mi je i ovaj nacin koji koristim spor.
Izgleda da su otprilike najbrze citanje iz rnd fajlova koje salju firme sa net-a.
MM
Potpis
The sleeper has awaken
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme