🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #308710

Re: test randomizacyjny w C

#308710
From: bartekltg
Date: Thu, 07 Jul 2016 22:49
111 lines
5468 bytes
On 07.07.2016 18:27, M.M. wrote:
> On Wednesday, July 6, 2016 at 3:19:13 PM UTC+2, M.M. wrote:
>> On Tuesday, July 5, 2016 at 3:50:55 PM UTC+2, bartekltg wrote:
>>> On 05.07.2016 10:13, M.M. wrote:
>>>
>>>>> Ciekawe, moze cos dobrego masz :-)
>>>> Nic rewelacyjnego, mam złożenie dwóch generatorów fibbonaciego. Jest
>>>> bardzo szybki, ma duży stan, a że przechodzi testy kryptograficzne - to
>>>> jestem zaskoczony.
>>>
>>> Zwiększ parametry w dieharder.
>>
>> Zwiększyłem parametr m (multipel) razy 10:
>> time dieharder -a -m 10
>> http://pastebin.com/fE2ahfHD
>>
>> O ile rozumiem, ilość danych wydłużyła się 10 razy. Czas wydłużył się
>> do 225 minut, czyli około 10 razy. Niektóre testy też zaliczył słabo.
>>
>> Nie wiem czy dobrze rozumiem tę kolumnę p. Czy to jest analiza
>> przedziałowa?


> > Bierze teoretyczną dystrybuantę rozkładu równomiernego
>> i np. wartości 0.01 i 0.99 oznaczają, że mniej niż 1% ciągów by
>> tak źle zaliczyło test?


Liczysz test 100 (1000)razy. Wynik ma rozkjłąd normalny
o zadanym odchyleniu. Dla każdego testu
p_i = erfc( |wynik-średnia|/(sqrt(2)sigma)  )

p_i też jest zmienną losową, o rozkłądzie jednostajnym.
jeśli jakiieś p_i = 10^-6 albo 1-10^-6, to jest to podejrzane,
ale w normalnym przypadku dostajesz po prostu 100(1000 liczb).

Następnie odpalają oni test Kołmogorowa-Smirnowa (patrzą na maksimum
różnicy miedzy teoretyczną dystrybuantą a dystrybuantą empiryczną).

Wyświetlany wynik to p-value _tego testu_. Prawdopodobieństwo(*patrz 
dalej), że maksymalny dystand z testu KS jest traki lub większy, przy
załozeniu hipotezy o jednorodnym rozkłądzie p_i.


 > Czyli optymalnie powinno być w okolicach 0.5?

Nie. To p-value ma też rozkład jednostajny (przy załozeniu
losowości). 0.4-0.6 jest tak samo przawdopodobne jak 0.0-0.2.

Należy to rozumieć jak zabawę w weryfikowanie hipotez
(standard: H0 - ciag był losowy przeciw H1 - nie był).
To, że dostaniemy p = 0.1, 0.5 czy 0.9 jest równie dobre,
Problem jest jeśli dostaniemy np p=0.001, bo to oznacza, że
takie albo większe odchylenie (w teścei KS) moglibyśmy dostać
przypadkowo z prawdopodobieństwem 0.001. To mocna przesłanka do 
odrzucenia H0.
0.1, 0.5 czy 0.9 nie należy widzieć jako 'oj, to tylko 10% sanszy'
(odnośćnie *), tylko jako 'na razie wszytko w porządku'.

BTW, jak się obawisz, żę za często widzisz wtniki postaci 0.5, zawsze
możesz wejść pozim wyzej, wygenerwać ich 100 i sprawdzić, czy równo
rozkładają się na [0,1] :)




Jednak nie wszystkie testy z zestawy dokłądnie tak działąją.

Naprawdę polecam jednak samemu przeczytać pierwszy roxzdizł
w manualu (tym pdfie na 132str).



>>
>> Pozdrawiam
>
> Mój generator też odpaliłem z opcją -m 10. Przeszedł testy gorzej, a
> jeden zawalił. Zawalił test sumy, ciekawe czemu o tym teście piszą
> żeby go nie używać?

https://sites.google.com/site/astudyofentropy/background-information/the-tests/dieharder-test-descriptions#T014

14 - Sums Test

Integers are floated to get a sequence U(1),U(2),... of uniform [0,1) 
variables.  Then overlapping sums, S(1)=U(1)+...+U(100), 
S2=U(2)+...+U(101),... are formed. The S's are virtually normal with a 
certain covariance matrix.  A linear transformation of the S's converts 
them to a sequence of independent standard normals, which are converted 
to uniform variables for a KSTEST. The  p-values from ten KSTESTs are 
given still another KSTEST.

Comments

At this point I think there is rock solid evidence that this test is 
completely useless in every sense of the word. It is broken, and it is 
so broken that there is no point in trying to fix it.  The problem is 
that the transformation above is not linear, and doesn't work. Don't use 
it.

For what it is worth, rgb_lagged_sums with ntuple 0 tests for exactly 
the same thing, but scalably and reliably without the complication of 
overlapping samples and covariance. Use it instead.


Nie jest to zbut wyczerpujące wyjaśnienie, ale sedno jest:
test jest zepsuty.


pzdr
bartekltg
Technical Details
Message-ID: <nlmman$4rd$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <5777f44e$0$12548$65785112@news.neostrada.pl> <nlcdr5$rk4$1@portraits.wsisiz.edu.pl> <3fabf491-7526-4652-b460-a6c2b03318fe@googlegroups.com> <52620181-d1a6-4812-96a5-38eaed8f0860@googlegroups.com> <nlecfp$94i$1@portraits.wsisiz.edu.pl> <771ccedb-ab65-484c-95f6-fed3beab850d@googlegroups.com> <nlgdvu$7vo$1@node2.news.atman.pl> <b2c8bdf7-f4bd-4026-a0c2-723b8171e8e9@googlegroups.com> <19769265-8046-4676-add2-0b5eecfbec3f@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: bartekltg <bartekltg@gmail.com>
Newsgroups: pl.comp.lang.c
Subject: Re: test randomizacyjny w C
Date: Fri, 8 Jul 2016 00:49:59 +0200
Organization: ATMAN - ATM S.A.
Lines: 112
Message-ID: <nlmman$4rd$1@node1.news.atman.pl>
References: <5777f44e$0$12548$65785112@news.neostrada.pl> <nlcdr5$rk4$1@portraits.wsisiz.edu.pl> <3fabf491-7526-4652-b460-a6c2b03318fe@googlegroups.com> <52620181-d1a6-4812-96a5-38eaed8f0860@googlegroups.com> <nlecfp$94i$1@portraits.wsisiz.edu.pl> <771ccedb-ab65-484c-95f6-fed3beab850d@googlegroups.com> <nlgdvu$7vo$1@node2.news.atman.pl> <b2c8bdf7-f4bd-4026-a0c2-723b8171e8e9@googlegroups.com> <19769265-8046-4676-add2-0b5eecfbec3f@googlegroups.com>
NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1467931799 4973 89.70.119.159 (7 Jul 2016 22:49:59 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 7 Jul 2016 22:49:59 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
In-Reply-To: <19769265-8046-4676-add2-0b5eecfbec3f@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit