Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
20
1040Wybranetypygeneratorówprogramowych
uznaniowośćwyborutestówstatystycznychmożesięniestetyzda-
rzyć,żewszystkiewcześniejwykorzystywanetestynieodrzucałyhi-
potezy,danyalgorytmgenerujeliczby(pseudo)losowe,alenowy,
dodatkowytestmożetakąhipotezęodrzucić,
problemwyboruciągumożesięzdarzyć,żealgorytmgenerujelicz-
byuznaneprzeznasza(pseudo)losowedlawszystkichprzebadanych
najpierwciągów,alepewiennowy,dłuższyciąglubnoweparame-
tryinicjalizującealgorytmdoprowadządoodrzuceniahipotezyotym,
żedanyalgorytmgenerujeliczby(pseudo)losowe.
Wzwiązkuztymniezbędnyjestwybórodpowiednioszerokiegozbio-
rutestówstatystycznych(jaknp.testywkolekcjinDiehard”,nCrypt-XS”,
nDieHarder”,patrznp.(Marsaglia1995))orazsprawdzenieszerokiegospek-
trumciągówiparametrówstartowychgeneratora.Innepodejściewymaga
ścisłegomatematycznegodowodu,żealgorytmgenerujeodpowiednieliczby
losowe.Choćjestonościślejszeinpewniejsze”,wprzypadkuwielutypów
PRNGodpowiedniedowodynieznane.
1.4.
Wybranetypygeneratorówprogramowych
1.4.1.
GeneratorLehmera
Generatoremliniowym(LCGLinearCongruentialGenerator)nazy-
wamygeneratoropisanyfunkcją
Xn+1=(a1Xn+a2Xn11+...+akXn1k+1+c)
modm
(1.14)
gdziea1,a2,...,ak,c,mliczbamicałkowitymi,zwanymiparametramige-
neratora.Jeślistałac=0,tomówimyogeneratorzemultiplikatywnym,
adlac/=0mówimyogeneratorzemieszanym.
Jakłatwozauważyć,dlageneratorapostaci(1.14)zmiennymiinicjalizu-
jącymijegodziałanieXo,X1,...,Xk11,czylikzmiennychwporównaniu
dojednejzmiennejwymaganejprzyalgorytmievonNeumanna.
Najprostszygeneratorliniowymapostać
Xn+1=(aXn+c)modm.
(1.15)
OkreślanyjestonrównieżjakogeneratorLehmera(patrz(Lehmer1951)).
Generatorytakieczęstoużywanewstandardowychbibliotekachikompi-
latorach.