eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingtestowanie generatorów liczb losowych (kontynuacja) › Re: testowanie generatorów liczb losowych (kontynuacja)
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: bartekltg <b...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: testowanie generatorów liczb losowych (kontynuacja)
    Date: Fri, 7 Oct 2016 19:58:14 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 188
    Message-ID: <nt8nnm$56f$1@node2.news.atman.pl>
    References: <7...@g...com>
    <nt6oi5$1q7$1@node1.news.atman.pl>
    <b...@g...com>
    <nt6pts$339$1@node1.news.atman.pl>
    <f...@g...com>
    <nt8691$ihf$1@node1.news.atman.pl>
    <3...@g...com>
    <1...@g...com>
    <0...@g...com>
    <b...@g...com>
    <9...@g...com>
    <3...@g...com>
    <0...@g...com>
    NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1475863094 5327 89.70.119.159 (7 Oct 2016 17:58:14 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 7 Oct 2016 17:58:14 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
    Thunderbird/45.3.0
    In-Reply-To: <0...@g...com>
    Xref: news-archive.icm.edu.pl pl.comp.programming:209897
    [ ukryj nagłówki ]

    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





Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: