-
Data: 2016-10-08 00:25:40
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 7:58:16 PM UTC+2, bartekltg wrote:
> On 07.10.2016 19:40, M.M. wrote:
> > 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.
>
> Nie, wersja -k 2 jest stabilna numerycznie.
> Tak twierdzi dokumentacja.
> A nawet więcewj, wprost mówią, że wynik różni się od dokładnego
> tylko o precyzje numeryczną. cyli jaskby uwarunkowanie było 1.
>
>
> @Wersja szybka:
> 0 is fast but slightly sloppy for psamples > 4999 (default).
> A Ty masz 10 000.
>
> Na -k 3 szkoda procesora.
> 3 is kuiper ks, fast, quite inaccurate for small samples, deprecated.
>
> pzdr
> bartekltg
Jeśli testy są dobrze zaimplementowane i jeśli dla k=2 mamy dokładność
taką ile cyfr ma typ procesora, to MT nie przechodzi testu dnia urodzin -
przynajmniej dla zarodka=1234. Mamy tylko dwie tysięczne procenta że
liczby pochodziły z generatora równomiernego:
time dieharder -s 1 -S 1234 -d 0 -g 15 -m 1000 -k 2
#===================================================
==========================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#===================================================
==========================#
rng_name |rands/second|
mt19937_1998| 1.17e+07 |
#===================================================
==========================#
test_name |ntup| tsamples |psamples| p-value |Assessment| Seed
#===================================================
==========================#
diehard_birthdays| 0| 100| 100000|0.00002404| WEAK | 1234
real 45m32.815s
user 45m26.558s
sys 0m4.484s
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-18 Warszawa => Software .Net Developer <=
- 2024-05-18 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-18 Ulm => Solution Architect (sichere Kommunikation und IoT-Loesungen <=
- 2024-05-18 Katowice => Head of Virtualization Platform Management and Operating S
- 2024-05-18 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-18 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-18 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-05-18 Warszawa => Account Manager (Recruitment Services) <=
- 2024-05-18 Łódź => Salesperson - CRM Systems <=
- 2024-05-18 Łódź => Handlowiec - Systemy CRM <=
- 2024-05-17 ZŁOMNIK o pracy w TVN TURBO, nowych przepisach i współczesnej motoryzacji. Turbo Taryfa!
- 2024-05-17 Białystok => DevOps Engineer Conexa First (Contractor) <=
- 2024-05-17 Warszawa => Starszy inżynier oprogramowania (Rust) <=
- 2024-05-17 Zabrze => Junior HelpDesk <=
- 2024-05-17 Bieruń => Administrator i wdrożeniowiec Lotus Notes/Domino <=