Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #33503
| Newsgroups | pl.comp.programming |
|---|---|
| Date | 2019-11-21 01:49 -0800 |
| Message-ID | <ea467062-1583-4561-ae88-cfabf3a2134d@googlegroups.com> (permalink) |
| Subject | Liniowy generator liczb pseudolosowych |
| From | "M.M." <mmarszik@gmail.com> |
Jak wiadomo od zawsze, liniowy generator liczb pseudolosowych jest uznawany za bardzo kiepski. Potrzebowałem jednak szybkiego, prostego generatora (właściwie to ciągle potrzebuję), więc postanowiłem przyjrzeć się temu z bliska. Nawet jak używam generatora Fibonacciego, to muszę go zainicjować jakiś innym, np. liniowym, więc prosty generator i tak, i tak jest potrzebny. Co się okazało? Generator liniowy, choć jest prosty, to wcale nie jest taki szybki, bo ma operację modulo. A po drugie, przeszedł wszystkie (słownie WSZYSTKIE) testy z diehardera. Pamiętajmy, że testy z diehardera są trudne, tak zaawansowany generator jak Mersenne Twister wszystkie przechodzi rzadko, chyba jeszcze nie widziałem żeby przeszedł wszystkie. Wypada wkleić kod źródłowy, żeby pokazać, czy nie robię jakiś błędów, ale w przypadku błędów to chyba by nie przechodził testów. Czy miałem szczęście i wylosował się dobrze zarodek? Ale jeśli generator jest zły, to trudno tak wylosować zarodek, aby przeszedł wszystkie testy. Czy może parametry (A, B i M) tak dobrałem że liniowy generator nabrał lepszych właściwości? Tutaj kod źródłowy: https://pastebin.com/qQYKGAYY Pod kodem jest kompilacja, uruchomienie testu i wyniki. W wynikach ani razu nie ma FALIED. Pozdrawiam
Back to pl.comp.programming | Previous | Next | Find similar | Unroll thread
Liniowy generator liczb pseudolosowych "M.M." <mmarszik@gmail.com> - 2019-11-21 01:49 -0800
csiph-web