Article View: pl.comp.lang.c
Article #308704Re: test randomizacyjny w C
From: M.M.
Date: Tue, 05 Jul 2016 08:13
Date: Tue, 05 Jul 2016 08:13
71 lines
5059 bytes
5059 bytes
On Monday, July 4, 2016 at 9:12:56 PM UTC+2, Matt D. wrote: > On 7/4/2016 20:06, M.M. wrote: > > On Monday, July 4, 2016 at 5:57:17 PM UTC+2, M.M. wrote: > >> On Monday, July 4, 2016 at 3:23:47 AM UTC+2, Matt D. wrote: > >> > >>> W praktyce: Istniejace implementacje `rand` _zdecydowanie_ zawala kazde > >>> porzadne testy losowosci. > >> > >> Poprawny generator liniowy, zaimplementowany na dużym zakresie > >> powinien przejść doskonale wszystkie testy na równomierność rozkładu, ponieważ > >> generuje wszystkie liczby z zakresu od 0 do N-1. Moim zdaniem problem tego > >> generatora polega na tym, że przechodzi te testy zbyt dokładnie. > > Byc moze, ale... > > >> Problemy ten generator dopiero ma przy testach na zależność, bo > >> liczba losowa numer [i] zależy bezpośrednio od liczby [i-1]. > >> W ciut lepszych odmianach zależy od dwóch lub trzech poprzednich. > > ...wlasnie. I w testach losowosci w sensie ogolnym musimy miec > zaliczenie baterii (t.j., calej kolekcji) -- zawalenie jednego implikuje > zawalenie baterii. Tak, oczywiście chodzi o zaliczenie całej serii testów. > Oczywiscie -- tutaj nie ma zadnego zaskoczenia, MT zdecydowanie nie > nadaje sie do krypto --- bardziej nadaje sie do obliczen numerycznych > (n.p., naukowe symulacje), gdzie statystyczne wlasciwosci rozkladu sa > wazniejsze od nieprzewidywalnosci (ale tez nie jest najlepszy, to bardzo > ciezki -- duzy stan -- i powolny generator). Ok, więc tylko mnie zaskakuje jego przewidywalność. Gdzieś czytałem, że trzeba znać około 600-700 liczby, aby przewidywać kolejne, dla automatycznych testów, to nie wydaje się zbyt łatwe. A co do stanu, to mój generator ma jeszcze większy. Co do wydajności, gdy kiedyś pobieżnie spojrzałem na kod MT, to nie wydawał się bardzo obliczeniowo-ciężki. Nie miał operacji modulo. > Czysta matematyka dyskretna / teoria liczb, a wiec w pelni > deterministyczny i trywialnie przewidywalny -- ale do calkowania Monte > Carlo potrafi sie calkiem niezle sprawdzac :-) > https://en.wikipedia.org/wiki/Quasi-Monte_Carlo_method Ok. > > Aż musiałem wrzucić generator mojego autorstwa: > > my generator no have any important name yet, version 0.00 > > Wygląda na to że przechodzi ichniejsze testy. > > > > Trochę jestem zaskoczony. > > 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. > Czytajac opis jednak: "At the moment, we are using ENT and diehard for > analysis. ENT is used to sort all results, and diehard is used to raise > red flags. We are trying to switch to dieharder which promises better > tests than diehard." > http://www.cacert.at/random/ > > Wiec mozesz jeszcze TestU01 (poprzedni post) i Dieharder sprawdzic: > http://www.phy.duke.edu/~rgb/General/dieharder.php Ale to bym musiał swój generator wkompilować w tamten kod? A nie, można dać mu swoje liczby na wejście: [ Dieharder also supports file-based input three distinct ways. The simplest is to use the (raw binary) stdin interface to pipe a bit stream from any rng, hardware or software, through dieharder for testing. In addition, one can use "direct" file input of either raw binary or ascii formatted (usually uint) random numbers. The man page contains examples of how to do all three of these things, and dieharder itself can generate sample files to use as templates for the appropriate formatting. ] To będę musiał spróbować. Pozdrawiam
Technical Details
Message-ID:
<771ccedb-ab65-484c-95f6-fed3beab850d@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!r1no11220152ige.0!news-out.google.com!d62ni2375ith.0!nntp.google.com!g4no409844ith.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!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>Show Full Headers
Complete Article Headers
X-Received: by 10.129.76.87 with SMTP id z84mr34531168ywa.39.1467706418804; Tue, 05 Jul 2016 01:13:38 -0700 (PDT) X-Received: by 10.36.8.7 with SMTP id 7mr337894itc.8.1467706418748; Tue, 05 Jul 2016 01:13:38 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!r1no11220152ige.0!news-out.google.com!d62ni2375ith.0!nntp.google.com!g4no409844ith.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Tue, 5 Jul 2016 01:13:37 -0700 (PDT) In-Reply-To: <nlecfp$94i$1@portraits.wsisiz.edu.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.37.225.10; posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj NNTP-Posting-Host: 178.37.225.10 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> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <771ccedb-ab65-484c-95f6-fed3beab850d@googlegroups.com> Subject: Re: test randomizacyjny w C From: "M.M." <mmarszik@gmail.com> Injection-Date: Tue, 05 Jul 2016 08:13:38 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit