Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 21.3.2013, 16:49   #1
nikolica0233
Član
 
Član od: 7.1.2013.
Poruke: 47
Zahvalnice: 23
Zahvaljeno 0 puta na 0 poruka
Određen forumom 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;

}
nikolica0233 je offline   Odgovor sa citatom ove poruke
Stara 21.3.2013, 17:03   #2
irreal
V.I.P. Programiranje
 
Član od: 9.1.2009.
Lokacija: Beograd, Banovo Brdo
Poruke: 1.157
Zahvalnice: 83
Zahvaljeno 448 puta na 303 poruka
Određen forumom 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
irreal je offline   Odgovor sa citatom ove poruke
Sledećih 4 korisnika se zahvaljuje korisniku irreal na korisnoj poruci:
DragonSlayer (23.3.2013), nikolica0233 (21.3.2013), Teva (23.3.2013), voodoo_ (21.3.2013)
Stara 21.3.2013, 22:46   #3
nikolica0233
Član
 
Član od: 7.1.2013.
Poruke: 47
Zahvalnice: 23
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: Nasumicni broj

"zbog toga što se vreme uvek menja između dva startovanja programa" ... kako to 2 startovanja
nikolica0233 je offline   Odgovor sa citatom ove poruke
Stara 21.3.2013, 23:22   #4
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.086
Zahvaljeno 4.923 puta na 2.859 poruka
Određen forumom Re: Nasumicni broj

Pokreneš program jednom, on odradi šta ima i završi se, pokreneš program još jednom, i to ti je drugo startovanje.
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
irreal (22.3.2013)
Stara 22.3.2013, 14:43   #5
Teva
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
Određen forumom 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)
Teva je offline   Odgovor sa citatom ove poruke
Stara 23.3.2013, 1:52   #6
Markonije
Starosedelac
 
Član od: 14.3.2009.
Poruke: 1.200
Zahvalnice: 207
Zahvaljeno 276 puta na 179 poruka
Određen forumom Re: Nasumicni broj

Vezati vreme za jednacinu do milisekundi,ne moze bolje...
Markonije je offline   Odgovor sa citatom ove poruke
Stara 23.3.2013, 6:23   #7
Stevvan
Veteran
 
Član od: 17.12.2005.
Lokacija: Zarkovo, Beograd
Poruke: 1.114
Zahvalnice: 97
Zahvaljeno 179 puta na 104 poruka
Slanje poruke preko MSN-a korisniku Stevvan Slanje poruke preko Skypea korisniku Stevvan
Određen forumom Re: Nasumicni broj

Zapravo formula uopste nije predrkana, random radi po ovom principu
Kod:
function() {
   a = a*b mod c;
   return a;
}
a u startu bude seed, citava filozofija je izabrati dobro b i c, tako da se svaki put dobije drugaciji broj, ali posle odredjenog vremena niz pocne da se ponavlja ispocetka. Dobro izabrane konstante garantuju da ce duzina generisanog niza biti veca
Stevvan je offline   Odgovor sa citatom ove poruke
Stara 23.3.2013, 14:32   #8
Teva
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
Određen forumom 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
Teva je offline   Odgovor sa citatom ove poruke
Stara 23.3.2013, 14:59   #9
Stevvan
Veteran
 
Član od: 17.12.2005.
Lokacija: Zarkovo, Beograd
Poruke: 1.114
Zahvalnice: 97
Zahvaljeno 179 puta na 104 poruka
Slanje poruke preko MSN-a korisniku Stevvan Slanje poruke preko Skypea korisniku Stevvan
Određen forumom 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.
Stevvan je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


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


Sva vremena su po Griniču +2 h. Sada je 7:57.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com