-
Data: 2016-10-07 19:40:20
Temat: Re: testowanie generatorów liczb losowych (kontynuacja)
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Friday, October 7, 2016 at 6:02:59 PM UTC+2, bartekltg wrote:
> Nie. Podałem Ci kontrprzykład.
> Ciagów bardzo nielosowych, które dają znacznie lepsze oszacowania MC.
Ok, nie ciągnijmy, bo za dużo obwarowań. Generalnie wiadomo, że ciąg
doskonale równomierny może dać lepsze oszacowanie całki niż ciąg
naprawdę losowy - nie o to chciałem się kłócić.
Popatrzmy lepiej na wpływ parametru k w dieharder.
Upewnijmy się, że mamy ciągle ten sam seed i ten sam ciąg liczb
pseudo losowych:
x@x:~$ time dieharder -s 1 -S 1234 -d 0 -g 15 -m 1 -k 1
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 7.99e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 100|0.92170613| PASSED | 1234
real 0m1.822s
user 0m1.817s
sys 0m0.004s
x@x:~$ time dieharder -s 1 -S 1234 -d 0 -g 15 -m 1 -k 0
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 8.08e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 100|0.92170613| PASSED | 1234
real 0m1.817s
user 0m1.808s
sys 0m0.008s
Wynik ten sam z dokładnością do 8 miejsc po przecinku, więc ciąg ten sam.
Zwiększamy m=100 (10tys testów)
x@x:~$ time dieharder -s 1 -S 1234 -d 0 -g 15 -m 100 -k 0
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 8.40e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 10000|0.01512520| PASSED | 1234
real 3m0.888s
user 3m0.475s
sys 0m0.436s
x@x:~$
x@x:~$ time dieharder -s 1 -S 1234 -d 0 -g 15 -m 100 -k 0
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 8.44e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 10000|0.01512520| PASSED | 1234
real 3m6.036s
user 3m5.858s
sys 0m0.104s
Znowu wynik ten sam, więc możemy być pewni że ciąg ten sam.
Zmieniam k=1
x@x:~$ time dieharder -s 1 -S 1234 -d 0 -g 15 -m 100 -k 1
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 8.36e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 10000|0.01514407| PASSED | 1234
real 3m2.390s
user 3m2.357s
sys 0m0.052s
Widać malą różnicę w wyniku.
Dajemy k=2
x@x:~$ time dieharder -s 1 -S 1234 -d 0 -g 15 -m 100 -k 2
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 8.43e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 10000|0.01514407| PASSED | 1234
real 3m5.804s
user 3m5.475s
sys 0m0.315s
Wynik taki sam jak dla k=1
Teraz k=3
x@x:~$ time dieharder -s 1 -S 1234 -d 0 -g 15 -m 100 -k 3
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 6.64e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 10000|0.00283496| WEAK | 1234
real 3m16.142s
user 3m15.666s
sys 0m0.336s
Upssss wynik zupełnie inny.
teraz k=4
x@x:~$ time dieharder -s 1 -S 1234 -d 0 -g 15 -m 100 -k 4
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 8.05e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 10000|0.00283496| WEAK | 1234
real 3m12.022s
user 3m11.777s
sys 0m0.137s
To samo co dla k=3
Różnic w czasie wykonania dużych nie ma. Mój wniosek: testy mogą być
liczone na precyzji jaką oferuje sprzętowo procesor, ale wzorek na
chi-kwadrat powinien być liczony na bignumie. Jeśli wersja szybka
pada już dla m=100, to wersja dokładna pewnie też padnie dla większych
wartości m.
Pozdrawiam
Następne wpisy z tego wątku
- 07.10.16 19:58 bartekltg
- 08.10.16 00:25 M.M.
- 08.10.16 02:32 M.M.
- 08.10.16 09:52 bartekltg
- 08.10.16 14:00 M.M.
Najnowsze wątki z tej grupy
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=