[ StratOS @ 21.05.2002. 07:56 ] @
Mislim da je tema dosta jasna :

Ajde da vidim malo vaše standardne matematičke algoritme. pa da vas vidimo
[ nervozna @ 21.05.2002. 23:58 ] @
Moze li ovo malo detaljnije?Ja nemam pojma o cemu se radi.
[ StratOS @ 22.05.2002. 07:06 ] @
Radi se o algoritmu, kako napraviti random number generator algoritam, to jest algoritam za generiranje takvih slučajnih brojeva, algoritam treba da bude takav, da se brojevi ne ponavljaju.

Zanima me algoritam i samo algoritam za njih.
zna se 0<RNG(n)<1
n kod toga je seed, početna vrijednost za izračun algoritma.
a RNG je algoritam, to je ono što mene zanima

Dobaj RNG je onaj koji stalno mjenja vrijednosti na svakoj decimalki sa slučajnim brojevima, a ti brojevi se ne ponavljaju sa nekim redosledom (!!)

Evo vam jednog free programa u attachementu :


POZOR !!!
Random number generator

dll copied from http://www.asahi-net.or.jp/~jz6h-ymmt/toolbox/mt.htm
dll je kopiran iz ovog sajta : http://www.asahi-net.or.jp/~jz6h-ymmt/toolbox/mt.htm

Copy this dll into your /system/ directory :
Kopiraj ovaj dll u vaš sistemski direktorij :

//windows/system win9x za win 95/98/Me
//WINNT/system32 winnt/2000/xp za WinNT/2000/XP

P.S.:Za zagon exe-a trebat če vam i VB6 runtime komponente, kojih možete domiti sa Microsoftovog site-a


dll fajl treba da downloadujete http://www.asahi-net.or.jp/~jz6h-ymmt/download/libMT.lzh treba prvo razpakirati
i programsko knjižicu "LIBMT.DLL" kopirajte u vaš sistemski direktorij !
[ StratOS @ 23.05.2002. 08:36 ] @
Dobivam različite mailove u vezi sa tim algoritmom.

Pažnja :
Algoritam je napisan u *.dll, ja sam napravio samo program *.exe za prikazivanje (simulaciju).

Mene ne zanimaju algoritmi u exe fileovima, napišite mi svoj algoritam kog ste upotrebili, evo jedan kratki primjer jednog slabog algoritna, primjer na brzinu :

Unos A (seed) 0<A<2*pi

Loop
rng(a)=tail(a*sin(a)+a*cos(a)+sqr(a))
a=rng(a)*2*pi
Loop

tail funkcija znači tail(a)=tail(a)-int(a) a int je zaukružavanje na cijeli broj
primjer
tail (2,4453657457324645757805761234)=0,4453657457324645757805761234
[ Majstor_Pućko @ 29.10.2008. 12:25 ] @
Da li bi neko mogao da mi kaze kako ili gde bih mogao da istestiram "slucajno" generisane brojeve? Pisao sam neki algoritam, dobio brojeve, i sada bih zeleo da ga proverim da li sam napravio dobro ili lose.
[ Goran Rakić @ 29.10.2008. 12:33 ] @
http://www.phy.duke.edu/~rgb/General/rand_rate.php

ili ako nećeš da se petljaš sa GSL interfejsom već samo da proveriš brojeve http://www.stat.fsu.edu/pub/diehard/
[ vlaiv @ 29.10.2008. 12:37 ] @
pogledaj i sledeci link

http://burtleburtle.net/bob/rand/testsfor.html

(spominje se i DIEHARD)
[ Nedeljko @ 29.10.2008. 12:46 ] @
Mogli ste malo da proguglate po netu pre nego sto postavite pitanje.

hint: pseudorandom

Citat:
StratOS: algoritam treba da bude takav, da se brojevi ne ponavljaju.


Ovo nije moguće. Kad tad mora doći do ponavljanja. Tvoj seed može da ima konačno mnogo vrednosti (232 ako je širine 32 bita). Šta kad se ispucaju sve vrednosti za seed? Onda se ide u krug, pa Jovo nanovo.

Ova tema je obrađena u drugom tomu Knutove knjige The Art of Computer Programming.
[ Nedeljko @ 29.10.2008. 12:53 ] @
Za nestrpljive:

http://en.wikipedia.org/wiki/Mersenne_twister

Linearni kongruentni metodi su brži, ali je ovaj kvalitetniji.
[ jablan @ 29.10.2008. 14:52 ] @
Valjda se čovek za 6 godina snašao...
[ Nedeljko @ 29.10.2008. 14:55 ] @
Citat:
Nedeljko: Za nestrpljive:

http://en.wikipedia.org/wiki/Mersenne_twister

Linearni kongruentni metodi su brži, ali je ovaj kvalitetniji.


Nadam se da nije bio toliko nestrpljiv da ne moze da saceka tricavih 6,5 godina.
[ Majstor_Pućko @ 29.10.2008. 15:00 ] @
Skinuo sam Diehard za Windows, ali ne razumem kako radi. Koliko vidim treba mu binary file, a ja rezultate dobijam u txt formatu i kopiram ih sa konzole. Da napomenem da sam algoritam pisao cisto iz razonode, tako da se moze desiti da bude cista glupost, ja ne znam zato i pitam za testiranje. Uostalom evo vam fajl gde sam generisao 1000 brojeva od 0-1000.
Pa ako nekoga ne mrzi, ili da mi kazete doslovce kako se radi sa ovim Diehard-om.
Pozdrav.
[ jablan @ 29.10.2008. 15:19 ] @
Citat:
Dieharder is a random number generator (rng) testing suite. It is intended to test generators, not files of possibly random numbers as the latter is a fallacious view of what it means to be random.
[ Majstor_Pućko @ 29.10.2008. 15:21 ] @
Aha, ispadoh budala
[ jablan @ 29.10.2008. 16:12 ] @
Pa što, još bolje, pusti generator na test...
[ Nedeljko @ 30.10.2008. 13:44 ] @
Moze ovako:

Uzmem jednu kockicu za jamb, covece ne ljuti se itd. Bacim je i pogledam koji je broj pao. Recimo da je pao broj 79. Znaci, dobili smo slucajan broj. Onda pisemo funkciju

Code:

int rnd() {
    return 79;
}


Obzirom da je broj 79 slucajan, a ova funkcija uvek vraca njega, ona garantovano generise 100% slucajan broj.
[ StratOS @ 30.10.2008. 17:16 ] @
Citat:
Nedeljko: Za nestrpljive:

http://en.wikipedia.org/wiki/Mersenne_twister

Linearni kongruentni metodi su brži, ali je ovaj kvalitetniji.


Originalni dll radi po toj metodi.
[ Majstor_Pućko @ 30.10.2008. 17:21 ] @
Kako se testira generator? Ja sam pisao u Javi, da li to otezava/menja stvari?
[ jablan @ 30.10.2008. 17:39 ] @
E, nisam koristio taj alat, ali u tekstu

http://www.phy.duke.edu/~rgb/General/rand_rate.php

imaš pri dnu kako da se koristi da čita sa stdin itd...

Mada, kad sve to odradiš verovatno ćeš kao izlaz dobiti brdo nekih parametara koje nećeš uspeti da protumačiš (izvini, pravim malu predrasudu o tvom poznavanju statistike)...
[ Nedeljko @ 30.10.2008. 20:23 ] @
Izgleda da su čak i odgovori od šest ipo godina nakon postavljanja pitanja stigli do postavljača teme.