Test generatorów
Wybrano test bazujący na błądzeniu punktu i teście chi-kwadrat.
Opis testu
Stworzono punkt o położeniu początkowym (0,0) oraz listę możliwych kroków (góra, dół, lewo, prawo). Za pomocą generatora wygenerowano losowe wartości zmiany położenia punktu. Po n=1001 krokach sprawdzano, w której ćwiartce płaszczyzny punkt zakończył błądzenie.
Przykładowa trajektoria błądzącego punktu:
Punkt zielony oznacza start (0,0). Punkt końcowy oznaczony jest na czerwono. Zatrzymanie nastąpiło po 1001 krokach.
Analiza testu :
Test przeprowadzono dla 5 generatorów, w tym również dla zadanego w projekcie Ran3.
Wartość statystyki chi-kwadrat wyliczono ze wzoru:
$$V = \frac{4}{n} + \sum_{n = 1}^{4}\left( n_{i} - \frac{n}{4} \right)^{2}$$
Ustalono poziom istotności 0.02, co dla 3 punktów swobody (4-1) pozwala na zdawalność generatorom posiadającym V<11.34
Wyniki:
N1 | N2 | N3 | N4 | V | |
---|---|---|---|---|---|
Ranlux3 | 25223 | 24969 | 25022 | 24786 | 3.8788 |
Mt19937 | 25285 | 24865 | 24838 | 25012 | 5.03352 |
Ranlxs0 | 24993 | 25020 | 24812 | 25175 | 2.65672 |
cmrg | 24807 | 25057 | 24779 | 25357 | 8.67152 |
Ran3 | 25254 | 25436 | 24975 | 24334 | 27.95172 |
Test przeprowadzono 3-krotnie, dla pewności. Za każdym razem wartości były do siebie podobne. W granicach V +/- 1.0
Wnioski:
Po przeprowadzonych badaniach widać, że 4 z 5 generatorów zdały ten test. Ran3, główny generator, który należało zbadać, tego testu nie zdał, co świadczy o niezbyt dobrym odzwierciedlaniu wyników losowych.