Diskuze: Náhodné číslo

Ostatní jazyky GameMaker GameMaker Náhodné číslo

Avatar
husarik.marek:

Ahoj.
Používám funkci pro generování náhodného čísla "irandom".
Příklad:

x=irandom_range(10,50)

Po delším pozorování se mi zdá, že jsou ty náhodně zvolená čísla z 90% blíž té horní hranici intervalu, nebo jsou přinejmenším za polovinou, řekněme v intervalu 30-50 a v intervalu 10-29 je jen desetina čísel.
Je to normální?
Dají se náhodná čísla generovat nějak jinak?
Díky

 
Odpovědět 7.4.2015 21:32
Avatar
Druid
Redaktor
Avatar
Druid:

Zkus před to dát

randomize();
Editováno 8.4.2015 13:55
Nahoru Odpovědět  +3 8.4.2015 13:55
Život je tak trapný bože, jak uprdnutí do soulože.
Avatar
Odpovídá na Druid
Neaktivní uživatel:

To je správné řešení, samozřejmě můžeš také využít gaussovský přístup a napsat si vlastní pseudo náhodnou funkci.

Více info: http://www.design.caltech.edu/…aussian.html

Nahoru Odpovědět 8.4.2015 14:54
Neaktivní uživatelský účet
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
TomBen:

Generátor v Game Makeru Studio je celkem OK, jen je dost pomalý.
( viz výpis z programu ENT, vysvětlivky: http://www.fourmilab.ch/random/ )

Ve starším GM 8.0 je generátor horší a občas vyplivne ne zcela náhodně rozloženou řadu.

/*
GM Studio 1M náhodných vzorků:

Entropy = 7.999818 bits per byte.

Optimum compression would reduce the size
of this 1000000 byte file by 0 percent.

Chi square distribution for 1000000 samples is 252.71, and randomly
would exceed this value 52.88 percent of the times.

Arithmetic mean value of data bytes is 127.4404 (127.5 = random).
Monte Carlo value for Pi is 3.142212569 (error 0.02 percent).
Serial correlation coefficient is 0.000890 (totally uncorrelated = 0.0).
*/
Nahoru Odpovědět  +1 11.4.2015 9:44
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Odpovídá na TomBen
Neaktivní uživatel:

V GM8 jsem nikdy nemusel funkci randomize() používat, čísla byla generována dobře a co se rychlosti týče, přišlo mi to vcelku dobré. V GMS se bez funkce randomize() nic neudělá. Trochu mi vadí mizerná dokumentace funkcí, kde se takovéhle změny nikdo neobtěžuje napsat. Stejně jako když v GMS změnili return funkce window_handle() z decu na hex...

Nahoru Odpovědět 11.4.2015 11:17
Neaktivní uživatelský účet
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
TomBen:

O randomize() jsem nepsal nic. :-) Randomize pouze nastavuje výchozí číslo pro generátor ( zpravidla podle systémového času ), aby se při opakovném spouštění neopakovala stejná pseudonáhodná řada.
Můj komentář byl ke kvalitě generátoru ( což s randomize nemá mnoho společného ) a chtěl sem tím říct, že není třeba psát vlastní generátor. ( tedy alespoň v GMS )

Editováno 11.4.2015 11:28
Nahoru Odpovědět 11.4.2015 11:27
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Odpovídá na TomBen
Neaktivní uživatel:

Já vím, byl to můj dodatek a porovnání GM8 a GMS.

Nahoru Odpovědět 11.4.2015 11:32
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.