|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
21.3.2013, 16:49 | #1 |
Član
Član od: 7.1.2013.
Poruke: 47
Zahvalnice: 23
Zahvaljeno 0 puta na 0 poruka
|
Nasumicni broj
Pozz svima, imam jedan zadatak koji sam uz pomoc googla napisao ... msm da radi kako treba
E sad nije mi samo jasno ovaj red : srand (time(NULL)); i sta ce mi #include <time.h> ... pozz #include <iostream.h> / #include <time.h> int main () { int broj; int broj2; srand (time(NULL)); cout<<"Broj"<<endl; cin>>broj; broj2=broj+rand(); cout<<"broj + slucajan broj je :\n"<<broj2; } |
21.3.2013, 17:03 | #2 |
V.I.P. Programiranje
Član od: 9.1.2009.
Lokacija: Beograd, Banovo Brdo
Poruke: 1.157
Zahvalnice: 83
Zahvaljeno 448 puta na 303 poruka
|
Re: Nasumicni broj
srand je skraceno od "seed random (number generator)"
Ali da krenemo od osnova. Kreirati zaista nasumični broj, i ako deluje lako, zapravo je veoma komplikovana stvar. ogromna većina slučajeva ne zahteva u potpunosti nasumične brojeve, i samim time se veoma često koriste pseudo random generatori brojeva. Svaki put kada pozoves rand(), koristiš taj pseudo random generator da dobiješ novu nasumičnu vrednost. Taj (kao i svi ostali) generator radi tako što izvršava razne operacije nad nekom inicijalnom vrednošću. Tu incijalnu vrednost mu se mora proslediti. Inicijalna vrednost koja, u nedostatku bolje reči i usled mog ograničenog rečnika, "pohranjuje" generator se zove SEED, one SEEDUJE generator. Ako bi uvek davao isti seed generatoru, uvek bi dobijao isti niz nasumičnih brojeva. Npr, probaj da program prepraviš da piše srand(532); Pokreni ga koliko god hoćeš puta, uvek ćeš dobijati istu sekvencu nasumičnih brojeva. Dolazimo do odgovora na tvoje pitanje: srand(time(null)); će svaki put kada pokreneš program seedovati generator nekim brojem koji je zavistan od trenutnog sistemskog vremena (do nivoa milisekunde) dakle, zbog toga što se vreme uvek menja između dva startovanja programa, pobrinuće se da uvek dobijaš različite sekvence nasumičnih brojeva. Mislim da sam pokrio sve, ako te još nešto zanima, pitaj |
Sledećih 4 korisnika se zahvaljuje korisniku irreal na korisnoj poruci: | ||
21.3.2013, 22:46 | #3 |
Član
Član od: 7.1.2013.
Poruke: 47
Zahvalnice: 23
Zahvaljeno 0 puta na 0 poruka
|
Re: Nasumicni broj
"zbog toga što se vreme uvek menja između dva startovanja programa" ... kako to 2 startovanja
|
21.3.2013, 23:22 | #4 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.086
Zahvaljeno 4.923 puta na 2.859 poruka
|
Re: Nasumicni broj
Pokreneš program jednom, on odradi šta ima i završi se, pokreneš program još jednom, i to ti je drugo startovanje.
|
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci: | ||
irreal (22.3.2013) |
22.3.2013, 14:43 | #5 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
Re: Nasumicni broj
Ne postoji nasumičan broj, već pseudo nasumičan. Odnosno na osnovu nekog broja i neke predrkane formule dobiješ neki "random" broj.
Obično se taj broj na osnovu kog se određuje naziva seme, odnosno seed. E sad kad bi stavio neki konkretan broj ti bi kompajlirao i uvek bi davao iste nasumične brojeve. time(null) vraća broj sekundi koje su protekle od 1970 godine valjda i tako svaki put kad ga startuješ dobijaš drugačiji seed. znači sa fixnim sidom jedan kompajl, jedan random broj (isti random broj se dobija prilikom svakog startovanja kompajliranog programa) sa time drugačiji sid pri svakom startovanju znači jedan start, jedan random broj. Poslednja ispravka: Teva (23.3.2013 u 14:34) |
23.3.2013, 1:52 | #6 |
Starosedelac
Član od: 14.3.2009.
Poruke: 1.200
Zahvalnice: 207
Zahvaljeno 276 puta na 179 poruka
|
Re: Nasumicni broj
Vezati vreme za jednacinu do milisekundi,ne moze bolje...
|
23.3.2013, 6:23 | #7 |
Veteran
|
Re: Nasumicni broj
Zapravo formula uopste nije predrkana, random radi po ovom principu
Kod:
function() { a = a*b mod c; return a; } |
23.3.2013, 14:32 | #8 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
Re: Nasumicni broj
Iskreno ne znam šta je u standardu. Radio sam na faxu neke komplikovane načine da dobiješ slučajan broj (mersenov tvister, fibonačijev generator slučajnih brojeva itd itd) pa sam pretpostavio da je nešto slično i u standardu
|
23.3.2013, 14:59 | #9 |
Veteran
|
Re: Nasumicni broj
Ovo je linearni kongurentni generator, evo sad sam pogledao u knjizi na pocetku podglavlja je maltene xD Knjiga je "Osnove dizajna i analize algoritama" od Dejana Zivkovica.
|
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Paskal - zadaci, POMOĆ?!! | ScoobyBu2 | otpaTci | 2 | 23.3.2011 15:45 |
Broj posjeta na stranici? | m4PoWeR | Web razvoj | 1 | 10.2.2008 3:30 |
Broj poruka na ovom forumu... :))) | Patton | Forum o forumu | 33 | 27.11.2005 12:32 |