Article View: pl.comp.lang.c
Article #308710Re: test randomizacyjny w C
From: bartekltg
Date: Thu, 07 Jul 2016 22:49
Date: Thu, 07 Jul 2016 22:49
111 lines
5468 bytes
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-mailReferences:
<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