🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216528

Liniowy generator liczb pseudolosowych

#216528
From: M.M.
Date: Thu, 21 Nov 2019 09:49
26 lines
2528 bytes
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
Technical Details
Message-ID: <ea467062-1583-4561-ae88-cfabf3a2134d@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!j16no10019871qtl.0!news-out.google.com!g53ni647qtg.0!nntp.google.com!j16no10019861qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Received: by 2002:ad4:4422:: with SMTP id e2mr2063915qvt.91.1574329778657;        Thu, 21 Nov 2019 01:49:38 -0800 (PST)
X-Received: by 2002:a05:620a:205d:: with SMTP id d29mr6759994qka.411.1574329778475; Thu, 21 Nov 2019 01:49:38 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!j16no10019871qtl.0!news-out.google.com!g53ni647qtg.0!nntp.google.com!j16no10019861qtl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 21 Nov 2019 01:49:38 -0800 (PST)
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.36.217.178; posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 178.36.217.178
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ea467062-1583-4561-ae88-cfabf3a2134d@googlegroups.com>
Subject: Liniowy generator liczb pseudolosowych
From: "M.M." <mmarszik@gmail.com>
Injection-Date: Thu, 21 Nov 2019 09:49:38 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit