Thread View: pl.comp.lang.c
78 messages
78 total messages
Page 1 of 2
Started by Norbert Cielecki
Sat, 02 Jul 2016 17:05
Page 1 of 2 • 78 total messages
test randomizacyjny w C
Author: Norbert Cielecki
Date: Sat, 02 Jul 2016 17:05
Date: Sat, 02 Jul 2016 17:05
9 lines
1360 bytes
1360 bytes
Witam! Czy ktoś mógłby mi wytłumaczyć, wjaki sposób funkcja rand() może | ma skorzystać z 10 ziaren losowych srand(time(0)), przy generowaniu 1000 liczb pseudolosowych z zakresu 1-10. Chodzi mi dokładnie o zbadanie losowości generatora liczb pseudolosowych. Wdzięczny będę za wskazówki. -- pzdr NTC
Re: test randomizacyjny w C
Author: bartekltg
Date: Sat, 02 Jul 2016 18:59
Date: Sat, 02 Jul 2016 18:59
37 lines
2217 bytes
2217 bytes
On 02.07.2016 19:05, Norbert Cielecki wrote: > > Witam! > Czy ktoś mógłby mi wytłumaczyć, wjaki sposób funkcja rand() może | ma > skorzystać z 10 ziaren losowych srand(time(0)), przy generowaniu 1000 > liczb pseudolosowych z zakresu 1-10. Opisz dokładnie, co chcesz zrobić, bo albo chcesz zrobić jakiś bardzo specyficzny test (więc trzeba go opisać dokładnie) albo coś pokiełbasiłeś. Po co ziarno zadawać 10 razy? Przeceiż to bez sensu. srand masz wywołać raz, kolejne wywołania już sobie radzą. > Chodzi mi dokładnie o zbadanie > losowości generatora liczb pseudolosowych. Wdzięczny będę za wskazówki. A jak chcesz zbadać losowość? Losowość jako takiej nie da się stwierzić, można co najwyżej przygotować szereg testów działających na próbce liczb (ale nie 1000!) i porównać rozkłąd wyników z oczekiwanym. Dużo można się dowiedzieć przeglądając dokumentacje bawiąc się zestawem dieharder (rozwinięty i uwspółcześniony techniczne słynny test diehard). Jeśli to nie musi być C, a możę być c++, jest tam bardzo ładna biblioteczka <random>. NAjpopularniejsze generatory są tam zaimplementowane, więc można by choćby porównać. BTW, pamiętaj, że srand(time(0)) nie jest dobrym rozwiązaniem dla kryptografii. pzdr bartekltg
Re: test randomizacyjny w C
Author: M.M.
Date: Sun, 03 Jul 2016 10:57
Date: Sun, 03 Jul 2016 10:57
20 lines
1981 bytes
1981 bytes
On Saturday, July 2, 2016 at 7:05:22 PM UTC+2, Norbert Cielecki wrote:
> Witam!
> Czy ktoś mógłby mi wytłumaczyć, wjaki sposób funkcja rand()
Gdy kiedyś sprawdzałem, to był liniowy, coś w stylu
rnd() {
next = (a * prev + b) mod N
prev = next;
return next;
}
Jak jest teraz w popularnych bibliotekach - nie wiem.
> może | ma
> skorzystać z 10 ziaren losowych srand(time(0)), przy generowaniu 1000
> liczb pseudolosowych z zakresu 1-10. Chodzi mi dokładnie o zbadanie
> losowości generatora liczb pseudolosowych. Wdzięczny będę za wskazówki.
Pewnie nie przejdzie najprostszych testów na zależność. Pozostałe testy
powinien przejść... zbyt dobrze, bo to generator 'doskonale równomierny'
Pozdrawiam
Re: test randomizacyjny w C
Author: Norbert Cielecki
Date: Sun, 03 Jul 2016 12:43
Date: Sun, 03 Jul 2016 12:43
46 lines
2680 bytes
2680 bytes
bartekltg <bartekltg@gmail.com> wrote: > On 02.07.2016 19:05, Norbert Cielecki wrote: >> >> Witam! >> Czy ktoś mógłby mi wytłumaczyć, wjaki sposób funkcja rand() może | ma >> skorzystać z 10 ziaren losowych srand(time(0)), przy generowaniu 1000 >> liczb pseudolosowych z zakresu 1-10. > > Opisz dokładnie, co chcesz zrobić, bo albo chcesz zrobić jakiś bardzo > specyficzny test (więc trzeba go opisać dokładnie) albo coś > pokiełbasiłeś. > > Po co ziarno zadawać 10 razy? Przeceiż to bez sensu. srand masz wywołać > raz, kolejne wywołania już sobie radzą. > > >> Chodzi mi dokładnie o zbadanie >> losowości generatora liczb pseudolosowych. Wdzięczny będę za wskazówki. > > A jak chcesz zbadać losowość? Losowość jako takiej nie da się stwierzić, > można co najwyżej przygotować szereg testów działających na próbce > liczb (ale nie 1000!) i porównać rozkłąd wyników z oczekiwanym. > Dużo można się dowiedzieć przeglądając dokumentacje > bawiąc się zestawem dieharder (rozwinięty i uwspółcześniony techniczne > słynny test diehard). > > > Jeśli to nie musi być C, a możę być c++, jest tam bardzo ładna > biblioteczka <random>. NAjpopularniejsze generatory są tam > zaimplementowane, więc można by choćby porównać. > > > BTW, pamiętaj, że srand(time(0)) nie jest dobrym rozwiązaniem > dla kryptografii. > > > pzdr > bartekltg > Po prostu mam napisać program generujący 1000 losowych liczb z przedziału 1 do 10. Program ma korzystać z 10 różnych ziaren. Należy użyć standardowych funkcji ANSI C: rand() i srand(). Program ma sprawdzać w ten sposób losowość określonego generatora liczb losowych. -- pzdr NTC
Re: test randomizacyjny w C
Author: M.M.
Date: Sun, 03 Jul 2016 13:37
Date: Sun, 03 Jul 2016 13:37
12 lines
2129 bytes
2129 bytes
On Sunday, July 3, 2016 at 2:43:05 PM UTC+2, Norbert Cielecki wrote: > Po prostu mam napisać program generujący 1000 losowych liczb z > przedziału 1 do 10. Program ma korzystać z 10 różnych ziaren. Należy > użyć standardowych funkcji ANSI C: rand() i srand(). Program ma > sprawdzać w ten sposób losowość określonego generatora liczb losowych. Brak w Twoim opisie właśnie tego sprawdzania. Generowanie liczb losowych to generowanie, a sprawdzanie to sprawdzanie, przez generowanie nie sprawdzisz ich losowości. Nie wiem jak zamierzasz sprawdzać, ale 1000 liczb to za mało. Może chodziło o wygenerowanie miliard razy po 1000? Pozdrawiam
Re: test randomizacyjny w C
Author: Matt D.
Date: Mon, 04 Jul 2016 01:23
Date: Mon, 04 Jul 2016 01:23
43 lines
2564 bytes
2564 bytes
On 7/2/2016 19:05, Norbert Cielecki wrote: > > Witam! > Czy ktoś mógłby mi wytłumaczyć, wjaki sposób funkcja rand() może | ma > skorzystać z 10 ziaren losowych srand(time(0)), przy generowaniu 1000 > liczb pseudolosowych z zakresu 1-10. Chodzi mi dokładnie o zbadanie > losowości generatora liczb pseudolosowych. Wdzięczny będę za wskazówki. W praktyce: Istniejace implementacje `rand` _zdecydowanie_ zawala kazde porzadne testy losowosci. A wiec jesli Twoim celem jest odpowiedzenie na pytanie, "czy `rand` przejdzie test(y) losowosci", to natychmiast -- i bez dalszej straty czasu -- odpowiedz jest prosta i bezwzgledna: ABSOLUTNIE NIE! (bez szans, bez wyjatkow, bez przeprosin). (W teorii, zachowanie `rand` jest implementation-defined, wiec mozna sobie wyobrazic implementacje ktore zrobia cos innego -- osobiscie nie znam takowej.) Jesli chodzi o czysta ciekawosc (i przekonanie sie, ze, faktycznie, zawali :]): Diehard i TestU01 to podstawowe testy (a raczej cale kolekcje tychze)--wiec mozesz zaczac od nich: https://en.wikipedia.org/wiki/Diehard_tests https://en.wikipedia.org/wiki/TestU01 Tutaj jest implementacja TestU01 w ANSI C: http://www.iro.umontreal.ca/~simardr/testu01/tu01.html Patrz tez: http://csrc.nist.gov/groups/ST/toolkit/rng/batteries_stats_test.html http://stackoverflow.com/questions/778718/how-to-test-random-numbers Jak chcesz porzadny generator, to przyjrzyj sie: http://www.pcg-random.org/ Tutaj przykladowe wyniki testow (ktorym mozesz sie przyjrzec takze--jako przyklad, jak testowac): http://www.pcg-random.org/statistical-tests.html Pozdrawiam, Matt
Re: test randomizacyjny w C
Author: M.M.
Date: Mon, 04 Jul 2016 15:57
Date: Mon, 04 Jul 2016 15:57
15 lines
2144 bytes
2144 bytes
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. 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. Pozdrawiam
Re: test randomizacyjny w C
Author: M.M.
Date: Mon, 04 Jul 2016 18:06
Date: Mon, 04 Jul 2016 18:06
35 lines
2891 bytes
2891 bytes
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. > > 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. > > Pozdrawiam Spoglądam na tę stronę z testami generatorów: http://www.cacert.at/cgi-bin/rngresults stdlib rand() - nie przechodzi ich testów. java.util.Random.Random - też nie przechodzi MT19337(java) nie przechodzi? czy to to jest merseen twister??? MersenneTwister19937 Gaussian - to na pewno MT, nie przechodzi??? Mersenne Twister (with some speed optimization) - prawie przeszedł, ale tylko 6Mbajtów na sekundę. Czy ja czegoś nie rozumiem? MT nie przechodzi testów? 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. Pozdrawiam
Re: test randomizacyjny w C
Author: Matt D.
Date: Mon, 04 Jul 2016 19:12
Date: Mon, 04 Jul 2016 19:12
73 lines
4160 bytes
4160 bytes
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. > Spoglądam na tę stronę z testami generatorów: > http://www.cacert.at/cgi-bin/rngresults > > stdlib rand() - nie przechodzi ich testów. > java.util.Random.Random - też nie przechodzi > MT19337(java) nie przechodzi? czy to to jest merseen twister??? > MersenneTwister19937 Gaussian - to na pewno MT, nie przechodzi??? > Mersenne Twister (with some speed optimization) - prawie przeszedł, ale tylko 6Mbajtów na sekundę. > > Czy ja czegoś nie rozumiem? MT nie przechodzi 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). // Dla szybkosci (numeryka, nie krypto) to raczej http://www.agner.org/random/ Drastyczny przyklad dlaczego numeryki nie zawsze obchodza problemy kryptografow -- QRNG (quasi-random number generator -- w odroznieniu od PRNG/pseudo): https://en.wikipedia.org/wiki/Low-discrepancy_sequence http://www.johndcook.com/blog/2009/03/16/quasi-random-sequences-in-art-and-integration/ 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 > 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 :-) 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 Pozdrawiam, Matt
Re: test randomizacyjny w C
Author: 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
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 05 Jul 2016 10:30
Date: Tue, 05 Jul 2016 10:30
277 lines
19420 bytes
19420 bytes
On Tuesday, July 5, 2016 at 10:13:40 AM UTC+2, M.M. wrote:
> On Monday, July 4, 2016 at 9:12:56 PM UTC+2, Matt D. wrote:
Mój działa 2 razy wolniej, ale łączy się przez pipe, więc w
rzeczywistości może działać szybciej. Jeśli coś z tego rozumiem,
to mój nie przeszedł jednego testu. mt19937 oblał 5 testów.
Pozdrawiam
time ./rnd | dieharder -a -g 200
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 3.04e+07 | 138388667|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.52531594| PASSED
diehard_operm5| 0| 1000000| 100|0.88766999| PASSED
diehard_rank_32x32| 0| 40000| 100|0.03233666| PASSED
diehard_rank_6x8| 0| 100000| 100|0.29721444| PASSED
diehard_bitstream| 0| 2097152| 100|0.34918380| PASSED
diehard_opso| 0| 2097152| 100|0.50657945| PASSED
diehard_oqso| 0| 2097152| 100|0.88860585| PASSED
diehard_dna| 0| 2097152| 100|0.05853630| PASSED
diehard_count_1s_str| 0| 256000| 100|0.80996803| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.08162491| PASSED
diehard_parking_lot| 0| 12000| 100|0.98287267| PASSED
diehard_2dsphere| 2| 8000| 100|0.14004802| PASSED
diehard_3dsphere| 3| 4000| 100|0.62339373| PASSED
diehard_squeeze| 0| 100000| 100|0.87961146| PASSED
diehard_sums| 0| 100| 100|0.14747688| PASSED
diehard_runs| 0| 100000| 100|0.41225423| PASSED
diehard_runs| 0| 100000| 100|0.96926418| PASSED
diehard_craps| 0| 200000| 100|0.83187785| PASSED
diehard_craps| 0| 200000| 100|0.97190438| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.91405742| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.50484522| PASSED
sts_monobit| 1| 100000| 100|0.81377042| PASSED
sts_runs| 2| 100000| 100|0.37037702| PASSED
sts_serial| 1| 100000| 100|0.99023947| PASSED
sts_serial| 2| 100000| 100|0.24827683| PASSED
sts_serial| 3| 100000| 100|0.53130014| PASSED
sts_serial| 3| 100000| 100|0.87529218| PASSED
sts_serial| 4| 100000| 100|0.96893525| PASSED
sts_serial| 4| 100000| 100|0.14342891| PASSED
sts_serial| 5| 100000| 100|0.63549263| PASSED
sts_serial| 5| 100000| 100|0.20667114| PASSED
sts_serial| 6| 100000| 100|0.06599729| PASSED
sts_serial| 6| 100000| 100|0.32501327| PASSED
sts_serial| 7| 100000| 100|0.88778087| PASSED
sts_serial| 7| 100000| 100|0.40056722| PASSED
sts_serial| 8| 100000| 100|0.86893848| PASSED
sts_serial| 8| 100000| 100|0.99532747| WEAK
sts_serial| 9| 100000| 100|0.84014250| PASSED
sts_serial| 9| 100000| 100|0.94151999| PASSED
sts_serial| 10| 100000| 100|0.41157574| PASSED
sts_serial| 10| 100000| 100|0.02411568| PASSED
sts_serial| 11| 100000| 100|0.50501685| PASSED
sts_serial| 11| 100000| 100|0.68418150| PASSED
sts_serial| 12| 100000| 100|0.47532332| PASSED
sts_serial| 12| 100000| 100|0.62428815| PASSED
sts_serial| 13| 100000| 100|0.79036248| PASSED
sts_serial| 13| 100000| 100|0.15910267| PASSED
sts_serial| 14| 100000| 100|0.84958889| PASSED
sts_serial| 14| 100000| 100|0.30018601| PASSED
sts_serial| 15| 100000| 100|0.83934280| PASSED
sts_serial| 15| 100000| 100|0.07175863| PASSED
sts_serial| 16| 100000| 100|0.17223749| PASSED
sts_serial| 16| 100000| 100|0.45766428| PASSED
rgb_bitdist| 1| 100000| 100|0.80372836| PASSED
rgb_bitdist| 2| 100000| 100|0.95969836| PASSED
rgb_bitdist| 3| 100000| 100|0.51430744| PASSED
rgb_bitdist| 4| 100000| 100|0.78846985| PASSED
rgb_bitdist| 5| 100000| 100|0.28001141| PASSED
rgb_bitdist| 6| 100000| 100|0.68435557| PASSED
rgb_bitdist| 7| 100000| 100|0.79218193| PASSED
rgb_bitdist| 8| 100000| 100|0.93569113| PASSED
rgb_bitdist| 9| 100000| 100|0.50762348| PASSED
rgb_bitdist| 10| 100000| 100|0.56450384| PASSED
rgb_bitdist| 11| 100000| 100|0.72211880| PASSED
rgb_bitdist| 12| 100000| 100|0.21548326| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.91735245| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.32193968| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.59488409| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.37491662| PASSED
rgb_permutations| 2| 100000| 100|0.40949502| PASSED
rgb_permutations| 3| 100000| 100|0.51640079| PASSED
rgb_permutations| 4| 100000| 100|0.41945147| PASSED
rgb_permutations| 5| 100000| 100|0.57090317| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.83402481| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.86127793| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.39657047| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.55831463| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.23344944| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.40792383| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.78179052| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.89423675| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.14714328| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.26929109| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.52379881| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.66150187| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.15554845| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.72894890| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.78340244| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.99139978| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.25041408| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.91756504| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.01608173| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.86694728| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.95291747| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.21757066| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.88954703| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.43995263| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.32606761| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.63786474| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.22024218| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.60748714| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.22731428| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.14715134| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.15898244| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.64918290| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.64234164| PASSED
rgb_kstest_test| 0| 10000| 1000|0.24073434| PASSED
dab_bytedistrib| 0| 51200000| 1|0.77067727| PASSED
dab_dct| 256| 50000| 1|0.90677849| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.94397094| PASSED
dab_filltree| 32| 15000000| 1|0.81306030| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.54259568| PASSED
dab_filltree2| 1| 5000000| 1|0.44663870| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.45485201| PASSED
real 45m26.438s
user 55m27.512s
sys 3m43.327s
----------------------------------------------------------------
time dieharder -a
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
mt19937| 8.34e+07 |3775359676|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.89149356| PASSED
diehard_operm5| 0| 1000000| 100|0.40351064| PASSED
diehard_rank_32x32| 0| 40000| 100|0.40868176| PASSED
diehard_rank_6x8| 0| 100000| 100|0.76813313| PASSED
diehard_bitstream| 0| 2097152| 100|0.24965193| PASSED
diehard_opso| 0| 2097152| 100|0.16890967| PASSED
diehard_oqso| 0| 2097152| 100|0.99779832| WEAK
diehard_dna| 0| 2097152| 100|0.60524380| PASSED
diehard_count_1s_str| 0| 256000| 100|0.64937667| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.05266623| PASSED
diehard_parking_lot| 0| 12000| 100|0.21450471| PASSED
diehard_2dsphere| 2| 8000| 100|0.06469797| PASSED
diehard_3dsphere| 3| 4000| 100|0.56244479| PASSED
diehard_squeeze| 0| 100000| 100|0.20217025| PASSED
diehard_sums| 0| 100| 100|0.00006724| WEAK
diehard_runs| 0| 100000| 100|0.45817843| PASSED
diehard_runs| 0| 100000| 100|0.93494839| PASSED
diehard_craps| 0| 200000| 100|0.97155738| PASSED
diehard_craps| 0| 200000| 100|0.98715073| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.15405864| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.21696794| PASSED
sts_monobit| 1| 100000| 100|0.38593025| PASSED
sts_runs| 2| 100000| 100|0.88756645| PASSED
sts_serial| 1| 100000| 100|0.83372288| PASSED
sts_serial| 2| 100000| 100|0.56224551| PASSED
sts_serial| 3| 100000| 100|0.43843146| PASSED
sts_serial| 3| 100000| 100|0.31321439| PASSED
sts_serial| 4| 100000| 100|0.54157417| PASSED
sts_serial| 4| 100000| 100|0.12212383| PASSED
sts_serial| 5| 100000| 100|0.51672150| PASSED
sts_serial| 5| 100000| 100|0.99670240| WEAK
sts_serial| 6| 100000| 100|0.27193224| PASSED
sts_serial| 6| 100000| 100|0.79304406| PASSED
sts_serial| 7| 100000| 100|0.37635852| PASSED
sts_serial| 7| 100000| 100|0.48104492| PASSED
sts_serial| 8| 100000| 100|0.77978636| PASSED
sts_serial| 8| 100000| 100|0.91548813| PASSED
sts_serial| 9| 100000| 100|0.56116112| PASSED
sts_serial| 9| 100000| 100|0.26976493| PASSED
sts_serial| 10| 100000| 100|0.99302499| PASSED
sts_serial| 10| 100000| 100|0.92480782| PASSED
sts_serial| 11| 100000| 100|0.47650760| PASSED
sts_serial| 11| 100000| 100|0.55346947| PASSED
sts_serial| 12| 100000| 100|0.48281485| PASSED
sts_serial| 12| 100000| 100|0.90786163| PASSED
sts_serial| 13| 100000| 100|0.82035110| PASSED
sts_serial| 13| 100000| 100|0.13517163| PASSED
sts_serial| 14| 100000| 100|0.31478814| PASSED
sts_serial| 14| 100000| 100|0.88822447| PASSED
sts_serial| 15| 100000| 100|0.93250540| PASSED
sts_serial| 15| 100000| 100|0.91138743| PASSED
sts_serial| 16| 100000| 100|0.73854300| PASSED
sts_serial| 16| 100000| 100|0.81083225| PASSED
rgb_bitdist| 1| 100000| 100|0.72719626| PASSED
rgb_bitdist| 2| 100000| 100|0.93691348| PASSED
rgb_bitdist| 3| 100000| 100|0.18604901| PASSED
rgb_bitdist| 4| 100000| 100|0.64526907| PASSED
rgb_bitdist| 5| 100000| 100|0.59249432| PASSED
rgb_bitdist| 6| 100000| 100|0.01985167| PASSED
rgb_bitdist| 7| 100000| 100|0.06514585| PASSED
rgb_bitdist| 8| 100000| 100|0.91399224| PASSED
rgb_bitdist| 9| 100000| 100|0.99417786| PASSED
rgb_bitdist| 10| 100000| 100|0.97776699| PASSED
rgb_bitdist| 11| 100000| 100|0.92253224| PASSED
rgb_bitdist| 12| 100000| 100|0.25547479| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.91009966| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.73734969| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.85031722| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.35292577| PASSED
rgb_permutations| 2| 100000| 100|0.29121818| PASSED
rgb_permutations| 3| 100000| 100|0.53520639| PASSED
rgb_permutations| 4| 100000| 100|0.59759367| PASSED
rgb_permutations| 5| 100000| 100|0.67877434| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.53025611| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.74217461| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.44188940| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.98366582| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.12716740| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.82870033| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.31197970| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.44222349| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.65016349| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.42219150| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.03289626| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.76327010| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.21382043| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.54124553| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.54840601| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.95144366| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.57875067| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.26797763| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.61279375| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.19651207| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.99754365| WEAK
rgb_lagged_sum| 21| 1000000| 100|0.85992946| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.96712183| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.78984908| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.94581764| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.84923534| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.60466386| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.51847730| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.29667891| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.82154321| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.93171252| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.22916095| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.99980698| WEAK
rgb_kstest_test| 0| 10000| 1000|0.20101301| PASSED
dab_bytedistrib| 0| 51200000| 1|0.78961457| PASSED
dab_dct| 256| 50000| 1|0.48530283| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.78115681| PASSED
dab_filltree| 32| 15000000| 1|0.13821354| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.93311623| PASSED
dab_filltree2| 1| 5000000| 1|0.65474810| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.19217408| PASSED
real 22m14.535s
user 22m14.225s
sys 0m0.483s
----------------------------------------------------------------
Re: test randomizacyjny w C
Author: bartekltg
Date: Tue, 05 Jul 2016 13:50
Date: Tue, 05 Jul 2016 13:50
31 lines
2676 bytes
2676 bytes
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. Z wspominanego manuala (analiza RANDU) Even this RNG, well-known to be terrible for most purposes, is capable of producing sequences that are “random enough” to pass some of Diehard’s difficult tests at the default Dieharder values, which in turn are invariably more challenging than those of Diehard. What happens if one cranks up the tests to to where they make a RNG die harder? In the case of randu, mostly it dies. For example the sums test fails without any doubt at 500 p-values. runs fails badly at 1000. The squeeze test fails at 300. Even parking lot fails at 2000 p-values. With randu, “passing” Diehard tests appears to be a matter more of how hard you look, not whether or not the result is truly random according to the test measure. In contrast, mt19937 1999 still passes the runs test at 10000 p-samples, although at that point the pass gets to be visibly marginal. We reiterate the previous observation concerning the true purpose of Dieharder with its variable controls: The point isn’t “pass- ing” any given test, the point is determining where it fails in a quantitative way! When this is done one can compare the performance of different RNGs in a meaningful way on a test by test basis. pzdr bartekltg
Re: test randomizacyjny w C
Author: bartekltg
Date: Tue, 05 Jul 2016 14:03
Date: Tue, 05 Jul 2016 14:03
300 lines
20328 bytes
20328 bytes
On 05.07.2016 12:30, M.M. wrote:
> On Tuesday, July 5, 2016 at 10:13:40 AM UTC+2, M.M. wrote:
>> On Monday, July 4, 2016 at 9:12:56 PM UTC+2, Matt D. wrote:
>
> Mój działa 2 razy wolniej, ale łączy się przez pipe, więc w
> rzeczywistości może działać szybciej. Jeśli coś z tego rozumiem,
> to mój nie przeszedł jednego testu. mt19937 oblał 5 testów.
Weak nie oznacza oblał. "FAILED" oznacza oblał, weak oznacza
'należy to dokłądniej zbadać'. Przeczytaj dokumentajcę, jest tam to dość
dobrze tłumaczone. Ta liczba to nie jakość. To zmienna losowa
o (przy załozeniu losowosći ciągu) rozkładzie jednostajnym na [0,1].
Odpaliłeś ponad 100 testów, paru trafień w obszary <0.01 i >0.99
należy się spodziewać. Taki wynik jest równie uprawniony, jak
z obszaru 0.67-0.68 ;-)
Dopiero potwórzenie testu i uparte trafianie w brzeg przediału
sugeruje niepoprawnosć generatora.
Odpal test jeszcze raz, zobaczysz, że najprawdopodobniej "WEAK"
będzie w innych miejscach (pod koniec posta dorzucam wynik u mnie z wczoraj)
Zwalnony generator wygląda tak:
dieharder -a -g 51
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown
#
#=============================================================================#
rng_name |rands/second| Seed |
slatec| 1.01e+08 |3631573203|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.00000000| FAILED
diehard_operm5| 0| 1000000| 100|0.00000000| FAILED
diehard_rank_32x32| 0| 40000| 100|0.00000000| FAILED
...
pzdr
bartekltg
> time dieharder -a
> #=============================================================================#
> # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
> #=============================================================================#
> rng_name |rands/second| Seed |
> mt19937| 8.34e+07 |3775359676|
> #=============================================================================#
> test_name |ntup| tsamples |psamples| p-value |Assessment
> #=============================================================================#
> diehard_birthdays| 0| 100| 100|0.89149356| PASSED
> diehard_operm5| 0| 1000000| 100|0.40351064| PASSED
> diehard_rank_32x32| 0| 40000| 100|0.40868176| PASSED
> diehard_rank_6x8| 0| 100000| 100|0.76813313| PASSED
> diehard_bitstream| 0| 2097152| 100|0.24965193| PASSED
> diehard_opso| 0| 2097152| 100|0.16890967| PASSED
> diehard_oqso| 0| 2097152| 100|0.99779832| WEAK
> diehard_dna| 0| 2097152| 100|0.60524380| PASSED
> diehard_count_1s_str| 0| 256000| 100|0.64937667| PASSED
> diehard_count_1s_byt| 0| 256000| 100|0.05266623| PASSED
> diehard_parking_lot| 0| 12000| 100|0.21450471| PASSED
> diehard_2dsphere| 2| 8000| 100|0.06469797| PASSED
> diehard_3dsphere| 3| 4000| 100|0.56244479| PASSED
> diehard_squeeze| 0| 100000| 100|0.20217025| PASSED
> diehard_sums| 0| 100| 100|0.00006724| WEAK
> diehard_runs| 0| 100000| 100|0.45817843| PASSED
> diehard_runs| 0| 100000| 100|0.93494839| PASSED
> diehard_craps| 0| 200000| 100|0.97155738| PASSED
> diehard_craps| 0| 200000| 100|0.98715073| PASSED
> marsaglia_tsang_gcd| 0| 10000000| 100|0.15405864| PASSED
> marsaglia_tsang_gcd| 0| 10000000| 100|0.21696794| PASSED
> sts_monobit| 1| 100000| 100|0.38593025| PASSED
> sts_runs| 2| 100000| 100|0.88756645| PASSED
> sts_serial| 1| 100000| 100|0.83372288| PASSED
> sts_serial| 2| 100000| 100|0.56224551| PASSED
> sts_serial| 3| 100000| 100|0.43843146| PASSED
> sts_serial| 3| 100000| 100|0.31321439| PASSED
> sts_serial| 4| 100000| 100|0.54157417| PASSED
> sts_serial| 4| 100000| 100|0.12212383| PASSED
> sts_serial| 5| 100000| 100|0.51672150| PASSED
> sts_serial| 5| 100000| 100|0.99670240| WEAK
> sts_serial| 6| 100000| 100|0.27193224| PASSED
> sts_serial| 6| 100000| 100|0.79304406| PASSED
> sts_serial| 7| 100000| 100|0.37635852| PASSED
> sts_serial| 7| 100000| 100|0.48104492| PASSED
> sts_serial| 8| 100000| 100|0.77978636| PASSED
> sts_serial| 8| 100000| 100|0.91548813| PASSED
> sts_serial| 9| 100000| 100|0.56116112| PASSED
> sts_serial| 9| 100000| 100|0.26976493| PASSED
> sts_serial| 10| 100000| 100|0.99302499| PASSED
> sts_serial| 10| 100000| 100|0.92480782| PASSED
> sts_serial| 11| 100000| 100|0.47650760| PASSED
> sts_serial| 11| 100000| 100|0.55346947| PASSED
> sts_serial| 12| 100000| 100|0.48281485| PASSED
> sts_serial| 12| 100000| 100|0.90786163| PASSED
> sts_serial| 13| 100000| 100|0.82035110| PASSED
> sts_serial| 13| 100000| 100|0.13517163| PASSED
> sts_serial| 14| 100000| 100|0.31478814| PASSED
> sts_serial| 14| 100000| 100|0.88822447| PASSED
> sts_serial| 15| 100000| 100|0.93250540| PASSED
> sts_serial| 15| 100000| 100|0.91138743| PASSED
> sts_serial| 16| 100000| 100|0.73854300| PASSED
> sts_serial| 16| 100000| 100|0.81083225| PASSED
> rgb_bitdist| 1| 100000| 100|0.72719626| PASSED
> rgb_bitdist| 2| 100000| 100|0.93691348| PASSED
> rgb_bitdist| 3| 100000| 100|0.18604901| PASSED
> rgb_bitdist| 4| 100000| 100|0.64526907| PASSED
> rgb_bitdist| 5| 100000| 100|0.59249432| PASSED
> rgb_bitdist| 6| 100000| 100|0.01985167| PASSED
> rgb_bitdist| 7| 100000| 100|0.06514585| PASSED
> rgb_bitdist| 8| 100000| 100|0.91399224| PASSED
> rgb_bitdist| 9| 100000| 100|0.99417786| PASSED
> rgb_bitdist| 10| 100000| 100|0.97776699| PASSED
> rgb_bitdist| 11| 100000| 100|0.92253224| PASSED
> rgb_bitdist| 12| 100000| 100|0.25547479| PASSED
> rgb_minimum_distance| 2| 10000| 1000|0.91009966| PASSED
> rgb_minimum_distance| 3| 10000| 1000|0.73734969| PASSED
> rgb_minimum_distance| 4| 10000| 1000|0.85031722| PASSED
> rgb_minimum_distance| 5| 10000| 1000|0.35292577| PASSED
> rgb_permutations| 2| 100000| 100|0.29121818| PASSED
> rgb_permutations| 3| 100000| 100|0.53520639| PASSED
> rgb_permutations| 4| 100000| 100|0.59759367| PASSED
> rgb_permutations| 5| 100000| 100|0.67877434| PASSED
> rgb_lagged_sum| 0| 1000000| 100|0.53025611| PASSED
> rgb_lagged_sum| 1| 1000000| 100|0.74217461| PASSED
> rgb_lagged_sum| 2| 1000000| 100|0.44188940| PASSED
> rgb_lagged_sum| 3| 1000000| 100|0.98366582| PASSED
> rgb_lagged_sum| 4| 1000000| 100|0.12716740| PASSED
> rgb_lagged_sum| 5| 1000000| 100|0.82870033| PASSED
> rgb_lagged_sum| 6| 1000000| 100|0.31197970| PASSED
> rgb_lagged_sum| 7| 1000000| 100|0.44222349| PASSED
> rgb_lagged_sum| 8| 1000000| 100|0.65016349| PASSED
> rgb_lagged_sum| 9| 1000000| 100|0.42219150| PASSED
> rgb_lagged_sum| 10| 1000000| 100|0.03289626| PASSED
> rgb_lagged_sum| 11| 1000000| 100|0.76327010| PASSED
> rgb_lagged_sum| 12| 1000000| 100|0.21382043| PASSED
> rgb_lagged_sum| 13| 1000000| 100|0.54124553| PASSED
> rgb_lagged_sum| 14| 1000000| 100|0.54840601| PASSED
> rgb_lagged_sum| 15| 1000000| 100|0.95144366| PASSED
> rgb_lagged_sum| 16| 1000000| 100|0.57875067| PASSED
> rgb_lagged_sum| 17| 1000000| 100|0.26797763| PASSED
> rgb_lagged_sum| 18| 1000000| 100|0.61279375| PASSED
> rgb_lagged_sum| 19| 1000000| 100|0.19651207| PASSED
> rgb_lagged_sum| 20| 1000000| 100|0.99754365| WEAK
> rgb_lagged_sum| 21| 1000000| 100|0.85992946| PASSED
> rgb_lagged_sum| 22| 1000000| 100|0.96712183| PASSED
> rgb_lagged_sum| 23| 1000000| 100|0.78984908| PASSED
> rgb_lagged_sum| 24| 1000000| 100|0.94581764| PASSED
> rgb_lagged_sum| 25| 1000000| 100|0.84923534| PASSED
> rgb_lagged_sum| 26| 1000000| 100|0.60466386| PASSED
> rgb_lagged_sum| 27| 1000000| 100|0.51847730| PASSED
> rgb_lagged_sum| 28| 1000000| 100|0.29667891| PASSED
> rgb_lagged_sum| 29| 1000000| 100|0.82154321| PASSED
> rgb_lagged_sum| 30| 1000000| 100|0.93171252| PASSED
> rgb_lagged_sum| 31| 1000000| 100|0.22916095| PASSED
> rgb_lagged_sum| 32| 1000000| 100|0.99980698| WEAK
> rgb_kstest_test| 0| 10000| 1000|0.20101301| PASSED
> dab_bytedistrib| 0| 51200000| 1|0.78961457| PASSED
> dab_dct| 256| 50000| 1|0.48530283| PASSED
> Preparing to run test 207. ntuple = 0
> dab_filltree| 32| 15000000| 1|0.78115681| PASSED
> dab_filltree| 32| 15000000| 1|0.13821354| PASSED
> Preparing to run test 208. ntuple = 0
> dab_filltree2| 0| 5000000| 1|0.93311623| PASSED
> dab_filltree2| 1| 5000000| 1|0.65474810| PASSED
> Preparing to run test 209. ntuple = 0
> dab_monobit2| 12| 65000000| 1|0.19217408| PASSED
> real 22m14.535s
> user 22m14.225s
> sys 0m0.483s
dieharder -a -g 13
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown
#
#=============================================================================#
rng_name |rands/second| Seed |
mt19937| 1.20e+08 |3389389251|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.29431631| PASSED
diehard_operm5| 0| 1000000| 100|0.52852446| PASSED
diehard_rank_32x32| 0| 40000| 100|0.84716060| PASSED
diehard_rank_6x8| 0| 100000| 100|0.92402355| PASSED
diehard_bitstream| 0| 2097152| 100|0.65596997| PASSED
diehard_opso| 0| 2097152| 100|0.10454289| PASSED
diehard_oqso| 0| 2097152| 100|0.20601502| PASSED
diehard_dna| 0| 2097152| 100|0.71763751| PASSED
diehard_count_1s_str| 0| 256000| 100|0.99110221| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.73283511| PASSED
diehard_parking_lot| 0| 12000| 100|0.31589220| PASSED
diehard_2dsphere| 2| 8000| 100|0.34651926| PASSED
diehard_3dsphere| 3| 4000| 100|0.10358450| PASSED
diehard_squeeze| 0| 100000| 100|0.35205940| PASSED
diehard_sums| 0| 100| 100|0.53472165| PASSED
diehard_runs| 0| 100000| 100|0.30456011| PASSED
diehard_runs| 0| 100000| 100|0.23640156| PASSED
diehard_craps| 0| 200000| 100|0.16184900| PASSED
diehard_craps| 0| 200000| 100|0.26037895| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.02645337| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.48343973| PASSED
sts_monobit| 1| 100000| 100|0.11213467| PASSED
sts_runs| 2| 100000| 100|0.85522943| PASSED
sts_serial| 1| 100000| 100|0.46255006| PASSED
sts_serial| 2| 100000| 100|0.75340395| PASSED
sts_serial| 3| 100000| 100|0.74012431| PASSED
sts_serial| 3| 100000| 100|0.64802213| PASSED
sts_serial| 4| 100000| 100|0.21830449| PASSED
sts_serial| 4| 100000| 100|0.39248333| PASSED
sts_serial| 5| 100000| 100|0.86123193| PASSED
sts_serial| 5| 100000| 100|0.61874413| PASSED
sts_serial| 6| 100000| 100|0.65706113| PASSED
sts_serial| 6| 100000| 100|0.89753729| PASSED
sts_serial| 7| 100000| 100|0.95167417| PASSED
sts_serial| 7| 100000| 100|0.50544957| PASSED
sts_serial| 8| 100000| 100|0.82968642| PASSED
sts_serial| 8| 100000| 100|0.65847991| PASSED
sts_serial| 9| 100000| 100|0.43930807| PASSED
sts_serial| 9| 100000| 100|0.41935084| PASSED
sts_serial| 10| 100000| 100|0.84969566| PASSED
sts_serial| 10| 100000| 100|0.36131997| PASSED
sts_serial| 11| 100000| 100|0.66493478| PASSED
sts_serial| 11| 100000| 100|0.99606922| WEAK
sts_serial| 12| 100000| 100|0.76735296| PASSED
sts_serial| 12| 100000| 100|0.61220712| PASSED
sts_serial| 13| 100000| 100|0.46114011| PASSED
sts_serial| 13| 100000| 100|0.67763653| PASSED
sts_serial| 14| 100000| 100|0.98469397| PASSED
sts_serial| 14| 100000| 100|0.99572737| WEAK
sts_serial| 15| 100000| 100|0.41716299| PASSED
sts_serial| 15| 100000| 100|0.68498938| PASSED
sts_serial| 16| 100000| 100|0.93368143| PASSED
sts_serial| 16| 100000| 100|0.92807695| PASSED
rgb_bitdist| 1| 100000| 100|0.93771832| PASSED
rgb_bitdist| 2| 100000| 100|0.68214844| PASSED
rgb_bitdist| 3| 100000| 100|0.56893339| PASSED
rgb_bitdist| 4| 100000| 100|0.25185135| PASSED
rgb_bitdist| 5| 100000| 100|0.89317515| PASSED
rgb_bitdist| 6| 100000| 100|0.22389075| PASSED
rgb_bitdist| 7| 100000| 100|0.44196303| PASSED
rgb_bitdist| 8| 100000| 100|0.87221049| PASSED
rgb_bitdist| 9| 100000| 100|0.51131770| PASSED
rgb_bitdist| 10| 100000| 100|0.74745750| PASSED
rgb_bitdist| 11| 100000| 100|0.92022722| PASSED
rgb_bitdist| 12| 100000| 100|0.15886948| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.59925968| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.10664896| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.24903973| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.35460780| PASSED
rgb_permutations| 2| 100000| 100|0.60358548| PASSED
rgb_permutations| 3| 100000| 100|0.94930425| PASSED
rgb_permutations| 4| 100000| 100|0.81455671| PASSED
rgb_permutations| 5| 100000| 100|0.80992233| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.03095645| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.41475495| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.89297345| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.22818264| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.95220356| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.63110540| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.07956616| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.24377151| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.64125810| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.86957099| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.28253580| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.77707396| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.67356797| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.07881472| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.10315234| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.03495259| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.16978017| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.64497427| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.67237869| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.20997107| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.74424383| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.87217900| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.70543788| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.29904382| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.93595050| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.51552109| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.46841470| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.04353906| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.75034974| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.80908354| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.80537450| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.87876817| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.23748967| PASSED
rgb_kstest_test| 0| 10000| 1000|0.60345857| PASSED
dab_bytedistrib| 0| 51200000| 1|0.22093090| PASSED
dab_dct| 256| 50000| 1|0.58230667| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.91629307| PASSED
dab_filltree| 32| 15000000| 1|0.64112376| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.79624950| PASSED
dab_filltree2| 1| 5000000| 1|0.85580538| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.57050186| PASSED
Re: test randomizacyjny w C
Author: M.M.
Date: Wed, 06 Jul 2016 13:19
Date: Wed, 06 Jul 2016 13:19
23 lines
2397 bytes
2397 bytes
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? Czyli optymalnie powinno być w okolicach 0.5? Pozdrawiam
Re: test randomizacyjny w C
Author: M.M.
Date: Thu, 07 Jul 2016 16:27
Date: Thu, 07 Jul 2016 16:27
66 lines
5284 bytes
5284 bytes
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? Czyli optymalnie powinno być w okolicach 0.5? > > 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://www.phy.duke.edu/~rgb/General/dieharder.php #=============================================================================# # dieharder version 3.29.4beta Copyright 2003 Robert G. Brown # #=============================================================================# Installed dieharder tests: Test Number Test Name Test Reliability =============================================================================== -d 0 Diehard Birthdays Test Good -d 1 Diehard OPERM5 Test Suspect -d 2 Diehard 32x32 Binary Rank Test Good -d 3 Diehard 6x8 Binary Rank Test Good -d 4 Diehard Bitstream Test Good -d 5 Diehard OPSO Good -d 6 Diehard OQSO Test Good -d 7 Diehard DNA Test Good -d 8 Diehard Count the 1s (stream) Test Good -d 9 Diehard Count the 1s Test (byte) Good -d 10 Diehard Parking Lot Test Good -d 11 Diehard Minimum Distance (2d Circle) Test Good -d 12 Diehard 3d Sphere (Minimum Distance) Test Good -d 13 Diehard Squeeze Test Good -d 14 Diehard Sums Test Do Not Use -d 15 Diehard Runs Test Good -d 16 Diehard Craps Test Good -d 17 Marsaglia and Tsang GCD Test Good -d 100 STS Monobit Test Good -d 101 STS Runs Test Good -d 102 STS Serial Test (Generalized) Good -d 200 RGB Bit Distribution Test Good -d 201 RGB Generalized Minimum Distance Test Good -d 202 RGB Permutations Test Good -d 203 RGB Lagged Sum Test Good -d 204 RGB Kolmogorov-Smirnov Test Test Good Pozdrawiam
Re: test randomizacyjny w C
Author: 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
Re: test randomizacyjny w C
Author: Borneq
Date: Sun, 25 Sep 2016 12:48
Date: Sun, 25 Sep 2016 12:48
14 lines
1601 bytes
1601 bytes
W dniu 05.07.2016 o 15:50, bartekltg pisze: > Zwiększ parametry w dieharder. W dniu 25.09.2016 o 14:20, bartekltg pisze: > BTW, zerknij na wątek > "test randomizacyjny w C" > z lipca na grupie grupy pl.comp.c > > Zaczęło się od pytania o zadanie domowe, ale ostetecznie > padło trochę ciekawych informacji linków;> Ciekawy test to test urodzinowy. Nie przechodzą go zwykłe generatory Fibonacciego z odejmowaniem modulo.
Re: test randomizacyjny w C
Author: Borneq
Date: Sun, 25 Sep 2016 12:59
Date: Sun, 25 Sep 2016 12:59
8 lines
1579 bytes
1579 bytes
W dniu 25.09.2016 o 14:48, Borneq pisze: > Ciekawy test to test urodzinowy. Nie przechodzą go zwykłe generatory > Fibonacciego z odejmowaniem modulo. W teście Birthday Spacings bierze się odstępy między urodzinami i bada ile wypada w ten sam "dzień". A może by badać kolejno jeszcze odstępy między odstępami itd między nimi aż do dziesiątego stopnia? Czy to było by dobrym testem?
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 15:44
Date: Mon, 26 Sep 2016 15:44
10 lines
1717 bytes
1717 bytes
W dniu 05.07.2016 o 15:50, bartekltg pisze: > Zwiększ parametry w dieharder. Coś mi tu nie działa: rozpakowałem die-c.tar.gz i podłączyłem pliki do własnego projektu. Testuję na 10 megowym pliku ściągniętym z http://qrng.anu.edu.au/FAQ.php#api czyli fizycznie losowym. Teraz wszystkie testy zwracają mi p-value = 0.000000. Co to oznacza? Nie pisze nigdzie "fail" czy "ok", czy zero oznacza że test przeszedł? a może odwrotnie? Tak samo p=0 nba pliku nie losowym czyli .pdf. Coś źle robię? Może inny format, ale ma być "unformatted"
Re: test randomizacyjny w C
Author: bartekltg
Date: Mon, 26 Sep 2016 16:18
Date: Mon, 26 Sep 2016 16:18
100 lines
6343 bytes
6343 bytes
On Monday, September 26, 2016 at 5:44:21 PM UTC+2, Borneq wrote:
> W dniu 05.07.2016 o 15:50, bartekltg pisze:
> > Zwiększ parametry w dieharder.
>
> Coś mi tu nie działa: rozpakowałem die-c.tar.gz i podłączyłem pliki do
A to nie diehard?
To staroć, którego nawet cięzko skompilować;]
sudo apt-get install dieharder
;>
http://www.phy.duke.edu/~rgb/General/dieharder.php
Windowsowej wersji nie ma, ale sa źródła, pewnie
problemów z kompilowaniem nie będzie.
> własnego projektu. Testuję na 10 megowym pliku ściągniętym z
> http://qrng.anu.edu.au/FAQ.php#api czyli fizycznie losowym.
> Teraz wszystkie testy zwracają mi p-value = 0.000000. Co to oznacza?
Testy oblane.
Coś zwaliłeś, bo nawet głupie 8MB z /dev/urandom przechodzi
testy na domyślnych ustawieniach. (siedze na wydziałowym,
torrenty poblokowane, nie sciagne tamtych liczb).
$ dieharder -g 201 -f random10.dat -a
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name | filename |rands/second|
file_input_raw| random10.dat| 4.09e+07 |
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
# The file file_input_raw was rewound 6 times
diehard_birthdays| 0| 100| 100|0.49580044| PASSED
# The file file_input_raw was rewound 54 times
diehard_operm5| 0| 1000000| 100|0.07929092| PASSED
# The file file_input_raw was rewound 115 times
diehard_rank_32x32| 0| 40000| 100|0.01416670| PASSED
# The file file_input_raw was rewound 143 times
diehard_rank_6x8| 0| 100000| 100|0.28938294| PASSED
# The file file_input_raw was rewound 156 times
diehard_bitstream| 0| 2097152| 100|0.00000000| FAILED
# The file file_input_raw was rewound 256 times
diehard_opso| 0| 2097152| 100|0.00000000| FAILED
# The file file_input_raw was rewound 323 times
diehard_oqso| 0| 2097152| 100|0.00000000| FAILED
# The file file_input_raw was rewound 354 times
diehard_dna| 0| 2097152| 100|0.64690035| PASSED
# The file file_input_raw was rewound 357 times
diehard_count_1s_str| 0| 256000| 100|0.38552182| PASSED
# The file file_input_raw was rewound 418 times
diehard_count_1s_byt| 0| 256000| 100|0.01806742| PASSED
# The file file_input_raw was rewound 419 times
diehard_parking_lot| 0| 12000| 100|0.77995133| PASSED
# The file file_input_raw was rewound 420 times
diehard_2dsphere| 2| 8000| 100|0.72504389| PASSED
# The file file_input_raw was rewound 420 times
diehard_3dsphere| 3| 4000| 100|0.93521493| PASSED
# The file file_input_raw was rewound 530 times
diehard_squeeze| 0| 100000| 100|0.00000000| FAILED
# The file file_input_raw was rewound 530 times
diehard_sums| 0| 100| 100|0.81960649| PASSED
# The file file_input_raw was rewound 535 times
diehard_runs| 0| 100000| 100|0.09559895| PASSED
diehard_runs| 0| 100000| 100|0.00023909| WEAK
# The file file_input_raw was rewound 600 times
diehard_craps| 0| 200000| 100|0.00203902| WEAK
diehard_craps| 0| 200000| 100|0.00680016| PASSED
uwaga, 10Mb to mało. 100 to też mało
Gdy plik się skończy, czytany jest od początku, to pogarsza wyniki.
Powinieneś o tym dostać informację na ekranie.
Oczywiśćei, możesz sobie wybrać p i t na tyle małe, że 10Mb staraczy,
ale takie testy do co lepszy liniowy generator kongruencyjny przejdzie.
> Nie
> pisze nigdzie "fail" czy "ok", czy zero oznacza że test przeszedł? a
To co pisze? Widzisz pare linijak wyżęj, wrzuciłem i linię poleceń,
którą uruchamiam program i to, co program wypluwa.
Jeśli tego nie podajesz, mogę sobie tylko wróżyć.
> może odwrotnie? Tak samo p=0 nba pliku nie losowym czyli .pdf. Coś źle
> robię? Może inny format, ale ma być "unformatted"
Prawdopodobnie. Ale skąd mam to wiedzieć, skoro nie piszesz, co robisz:-)
Odradzam tez używania antycznych programów z lat 90tych, jeśli popełniasz
jakiś błąd w wywołaniu (a to mi się wróży) to nikt nie pomoże, bo mało
komu będzie się chciało z tymi antycznymi programami walczyć:) Z tego
co pamietam, nie moglem oryginalnego diehard na linuksie uruchomić
or razu.
pzdr
bartekltg
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 16:27
Date: Mon, 26 Sep 2016 16:27
8 lines
1561 bytes
1561 bytes
W dniu 26.09.2016 o 18:18, bartekltg pisze: > A to nie diehard? > To staroć, którego nawet cięzko skompilować;] > > sudo apt-get install dieharder Próbuję dieharder pod Windows i Visualem ale zależny od biblioteki GSL. Nie kompiluje się. Ale zobaczę pod Linuxem ;-)
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 16:44
Date: Mon, 26 Sep 2016 16:44
14 lines
1880 bytes
1880 bytes
W dniu 26.09.2016 o 18:27, Borneq pisze: > W dniu 26.09.2016 o 18:18, bartekltg pisze: >> A to nie diehard? >> To staroć, którego nawet cięzko skompilować;] >> >> sudo apt-get install dieharder > > Próbuję dieharder pod Windows i Visualem ale zależny od biblioteki GSL. > Nie kompiluje się. Ale zobaczę pod Linuxem ;-) > Robię, wszystkie testy przechodzi, tylko pierwszy Birthday jest weak, co znaczy że potem będę musiał go jeszcze raz wykonać? Muszę się wczytać w parametry, jest tam coś takiego jak struktura? Aby rozróżnić czy liczby są 24 czy np. 32 bitowe jedna za drugą.
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 18:57
Date: Mon, 26 Sep 2016 18:57
23 lines
2098 bytes
2098 bytes
W dniu 26.09.2016 o 18:44, Borneq pisze:
> W dniu 26.09.2016 o 18:27, Borneq pisze:
>> W dniu 26.09.2016 o 18:18, bartekltg pisze:
>>> A to nie diehard?
>>> To staroć, którego nawet cięzko skompilować;]
>>>
>>> sudo apt-get install dieharder
>>
>> Próbuję dieharder pod Windows i Visualem ale zależny od biblioteki GSL.
>> Nie kompiluje się. Ale zobaczę pod Linuxem ;-)
>>
Coś mi tu nie pasuje:
dieharder -f fibtest.cpp -a^C
najpierw pokazuje
rng_name | filename |rands/second|
mt19937| fibtest.cpp| 6.34e+07 |
tak jakby brał jakiś generator mt19937
potem celowo zamiast pliku binarnego dałem zupełnie nielosowy i mały
pliczek w C++. Po pierwsze: i tak powoli testuje, po drugie: przechodzi
testy.
Re: test randomizacyjny w C
Author: bartekltg
Date: Mon, 26 Sep 2016 19:36
Date: Mon, 26 Sep 2016 19:36
43 lines
2848 bytes
2848 bytes
On 26.09.2016 20:57, Borneq wrote: > W dniu 26.09.2016 o 18:44, Borneq pisze: >> W dniu 26.09.2016 o 18:27, Borneq pisze: >>> W dniu 26.09.2016 o 18:18, bartekltg pisze: >>>> A to nie diehard? >>>> To staroć, którego nawet cięzko skompilować;] >>>> >>>> sudo apt-get install dieharder >>> >>> Próbuję dieharder pod Windows i Visualem ale zależny od biblioteki GSL. >>> Nie kompiluje się. Ale zobaczę pod Linuxem ;-) >>> > > Coś mi tu nie pasuje: > dieharder -f fibtest.cpp -a^C > > najpierw pokazuje > rng_name | filename |rands/second| > mt19937| fibtest.cpp| 6.34e+07 | > tak jakby brał jakiś generator mt19937 > potem celowo zamiast pliku binarnego dałem zupełnie nielosowy i mały > pliczek w C++. Po pierwsze: i tak powoli testuje, po drugie: przechodzi > testy. Nie, nie przechodzi testów; mt19937 przechodzi testy;p Rozumiem, że nie chce ci się czytać dokumentacji. Nic taką metodą nie zdziałasz, ale rozumiem niechęć:-) Ale dlaczego nie zerżnąłeś polecenia z mojego poprzedniego posta: dieharder -g 201 -f random10.dat -a to nie rozumiem;-) I nie, losowo wybrany pliczek tekstowy nie przechodzi u mnie testów. BTW, torrent na 1GB zasuwa z oszłamiającą prędkością 8kb/s :( Rozumiem, żę nia chcą tracić pieniędzy na wielkie łacze, ale to jednak lekka przesada;> Na dropboxa czy inne googledrive by wrzucili, byłoby lepiej ;-) pzdr bartekltg
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 20:07
Date: Mon, 26 Sep 2016 20:07
16 lines
2160 bytes
2160 bytes
W dniu 26.09.2016 o 21:36, bartekltg pisze: > Ale dlaczego nie zerżnąłeś polecenia z mojego poprzedniego posta: > dieharder -g 201 -f random10.dat -a > to nie rozumiem;-) zrobię > BTW, torrent na 1GB zasuwa z oszłamiającą prędkością 8kb/s :( > Rozumiem, żę nia chcą tracić pieniędzy na wielkie łacze, ale to 1GB ma za mało pewnie userów, ja ściągnąłem 10 mega i 100 mega, czy sto mega będzie wolniej obrabiany w testach niż 10? Zastanawiam się jak on też testuje: czy bierze kolejne bajty czy też losowo skacze do różnych. Gdyby skakał, nie zbadał by zależności: ktoś mógłby dać kolejne bity 0 i 1 i nie wykrył by tego. Ale gdyby bral po kolei to następne wywołanie było by takie same, jak by było WEAK to następne też WEAK.
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 20:33
Date: Mon, 26 Sep 2016 20:33
7 lines
1733 bytes
1733 bytes
W dniu 26.09.2016 o 21:36, bartekltg pisze: > Nie, nie przechodzi testów; mt19937 przechodzi testy;p > dieharder -g 201 -f random10.dat -a Ranlux w każdej wersji LUX nie przechodzi diehard_operm5, co więcej - fizyczny random nie przechodzi diehard_opso, podczas gdy mt19937 przechodzi wszystkie ? Myślałem że Ranlux lepiej się spisuje niż mt19937.
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 20:57
Date: Mon, 26 Sep 2016 20:57
13 lines
2040 bytes
2040 bytes
W dniu 26.09.2016 o 22:33, Borneq pisze: > W dniu 26.09.2016 o 21:36, bartekltg pisze: >> Nie, nie przechodzi testów; mt19937 przechodzi testy;p >> dieharder -g 201 -f random10.dat -a > > Ranlux w każdej wersji LUX nie przechodzi diehard_operm5, co więcej - > fizyczny random nie przechodzi diehard_opso, podczas gdy mt19937 > przechodzi wszystkie ? Myślałem że Ranlux lepiej się spisuje niż mt19937. > > Zauważyłem, że pliki przewijane są wiele razy. Z tego wynikało by że pierwszy test potrzebuje pliku 50 mega, a drugi aż 400 mega. Tylko czy to nie zwolni? Ale skoro i tak w kółko się powtarza plik...
Re: test randomizacyjny w C
Author: M.M.
Date: Mon, 26 Sep 2016 21:22
Date: Mon, 26 Sep 2016 21:22
19 lines
2602 bytes
2602 bytes
On Monday, September 26, 2016 at 10:57:37 PM UTC+2, Borneq wrote: > W dniu 26.09.2016 o 22:33, Borneq pisze: > > W dniu 26.09.2016 o 21:36, bartekltg pisze: > >> Nie, nie przechodzi testów; mt19937 przechodzi testy;p > >> dieharder -g 201 -f random10.dat -a > > > > Ranlux w każdej wersji LUX nie przechodzi diehard_operm5, co więcej - > > fizyczny random nie przechodzi diehard_opso, podczas gdy mt19937 > > przechodzi wszystkie ? Myślałem że Ranlux lepiej się spisuje niż mt19937. > > > > > Zauważyłem, że pliki przewijane są wiele razy. Z tego wynikało by że > pierwszy test potrzebuje pliku 50 mega, a drugi aż 400 mega. Tylko czy > to nie zwolni? Ale skoro i tak w kółko się powtarza plik... A jakby połączyć bezpośrednio z generatorem przez pipe? Bez męczenia łącza i dysku ogromnymi plikami? Pozdrawiam
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 21:32
Date: Mon, 26 Sep 2016 21:32
7 lines
1891 bytes
1891 bytes
W dniu 26.09.2016 o 23:22, M.M. pisze: > A jakby połączyć bezpośrednio z generatorem przez pipe? Bez męczenia łącza i > dysku ogromnymi plikami? W tester wbudowane są różne przykładowe generatory z GSL. Generowanie do pliku najwyżej w przypadku niestandardowym. Ale to nie problem, mam na dysku SSD, problemem jest długie działanie testerów.
Re: test randomizacyjny w C
Author: bartekltg
Date: Mon, 26 Sep 2016 21:39
Date: Mon, 26 Sep 2016 21:39
25 lines
2454 bytes
2454 bytes
On 26.09.2016 23:32, Borneq wrote: > W dniu 26.09.2016 o 23:22, M.M. pisze: >> A jakby połączyć bezpośrednio z generatorem przez pipe? Bez męczenia >> łącza i >> dysku ogromnymi plikami? > > W tester wbudowane są różne przykładowe generatory z GSL. Generowanie do > pliku najwyżej w przypadku niestandardowym. Ale to nie problem, mam na > dysku SSD, problemem jest długie działanie testerów. > Długie działanie testów? Jak ostatnio puszczałem symulacje MC to szarpały się dwa tygodnie na 48 rdzeniach. >50% czasu szło na generowanie liczb losowych. I chce mieć jakieś przesłanki by wierzyc, że nawet tak długi ciąg nadal ma statystyczne własności liczb losowych i że moja całeczka wyjdzie z dokąłdnością do tych 6 miejsc po przecinku. Testy działajace w sekundę to trochę mało ;-) [ok, nabijam się trochę, i tak używałem MT ;-)] pzdr bartekltg
Re: test randomizacyjny w C
Author: M.M.
Date: Mon, 26 Sep 2016 21:46
Date: Mon, 26 Sep 2016 21:46
44 lines
4528 bytes
4528 bytes
On Monday, September 26, 2016 at 11:32:09 PM UTC+2, Borneq wrote:
> W dniu 26.09.2016 o 23:22, M.M. pisze:
> > A jakby połączyć bezpośrednio z generatorem przez pipe? Bez męczenia łącza i
> > dysku ogromnymi plikami?
>
> W tester wbudowane są różne przykładowe generatory z GSL. Generowanie do
> pliku najwyżej w przypadku niestandardowym. Ale to nie problem, mam na
> dysku SSD, problemem jest długie działanie testerów.
Czyli byś chciał dobry test który działa w krótkim czasie. Obawiam się, że
to wymusza testowanie na krótkim ciągu liczb pseudolosowym. Może minutę
temu włączyłem u siebie diehardera, zobacz ile już przetestował:
./rnd | dieharder -a -g 200
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 3.42e+07 |2135896386|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.52531594| PASSED
diehard_operm5| 0| 1000000| 100|0.88766999| PASSED
diehard_rank_32x32| 0| 40000| 100|0.03233666| PASSED
diehard_rank_6x8| 0| 100000| 100|0.29721444| PASSED
diehard_bitstream| 0| 2097152| 100|0.34918380| PASSED
diehard_opso| 0| 2097152| 100|0.50657945| PASSED
diehard_oqso| 0| 2097152| 100|0.88860585| PASSED
diehard_dna| 0| 2097152| 100|0.05853630| PASSED
diehard_count_1s_str| 0| 256000| 100|0.80996803| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.08162491| PASSED
diehard_parking_lot| 0| 12000| 100|0.98287267| PASSED
diehard_2dsphere| 2| 8000| 100|0.14004802| PASSED
diehard_3dsphere| 3| 4000| 100|0.62339373| PASSED
diehard_squeeze| 0| 100000| 100|0.87961146| PASSED
diehard_sums| 0| 100| 100|0.14747688| PASSED
diehard_runs| 0| 100000| 100|0.41225423| PASSED
diehard_runs| 0| 100000| 100|0.96926418| PASSED
diehard_craps| 0| 200000| 100|0.83187785| PASSED
diehard_craps| 0| 200000| 100|0.97190438| PASSED
Testy są szybkie, ale jak chcesz przetestować bardzo dużo danych, to siła
wyższa.
Re: test randomizacyjny w C
Author: Borneq
Date: Mon, 26 Sep 2016 21:54
Date: Mon, 26 Sep 2016 21:54
3 lines
1740 bytes
1740 bytes
W dniu 26.09.2016 o 23:46, M.M. pisze: > ./rnd | dieharder -a -g 200 A gdzie jest to ./rnd ? o jakiś program wypluwający na stdout?
Re: test randomizacyjny w C
Author: M.M.
Date: Mon, 26 Sep 2016 21:59
Date: Mon, 26 Sep 2016 21:59
7 lines
2254 bytes
2254 bytes
On Monday, September 26, 2016 at 11:54:20 PM UTC+2, Borneq wrote: > W dniu 26.09.2016 o 23:46, M.M. pisze: > > ./rnd | dieharder -a -g 200 > A gdzie jest to ./rnd ? o jakiś program wypluwający na stdout? To programik mojego autorstwa do generowania liczb losowych. Jest w katalogu bieżącym.
Re: test randomizacyjny w C
Author: Borneq
Date: Tue, 27 Sep 2016 13:55
Date: Tue, 27 Sep 2016 13:55
29 lines
3230 bytes
3230 bytes
W dniu 26.09.2016 o 23:39, bartekltg pisze: > I chce mieć jakieś przesłanki by wierzyc, że nawet tak długi ciąg nadal > ma statystyczne własności liczb losowych i że moja całeczka wyjdzie > z dokąłdnością do tych 6 miejsc po przecinku. Testy działajace w sekundę > to trochę mało ;-) Z czego wynika dobra chaotyczność RanLuxa? Na poziomie 0 działa jak algorytm o nazwie RCarry, poziom 1 to połowa wyników idzie do śmietnika: najpierw wypluwa 24 wyniki, potem opuszcza 24. potem jest level 2 (luxury=97) level 3 (luxury=223) level 4 (luxury=389) opuszcza luxury-24. Liczby 97,223 i 389 przypuszcam dobrane nieprzypadkowo, nawet opuszczenie 200 działało by gorzej niż 223-24. Chciałem zrobić RCarry do kwadratu, w którym RCarry byłby sterowany drugim RCarry. Działał by w ten sposób, że drugi losował by liczbę z przedziału 1..32, pierwszy wypluwał by tyle wyników, potem drugie losowanie i pierwszy by tyle wyników opuszczał. Myślałem że byłby lepszy, bo nawet jak RanLux opuści blisko 200, to mamy regularność: bierze 24, opuszcza 199 itd.. Napisałem https://gist.github.com/borneq/abc66f4c861950cf87275523b1262bd9 i działa z prędkością RanLux level 1 opuszczając połowę (dodanie drugiego praktycznie nie zwalnia, bo jest rzadko wołany) Tylko problem: na teście Birthday jest WEAK, nawet gdy sprawdziłem dla innego seeda. Czyli zachowuje się gorzej niż RanLux Level 1. A więc chaotyczność spowodowana jest tym, że pomijamy około 200 wyników, a nawet zmienna ilość pomijanych jest gorsza. Jeśli chodzi o prędkość to RanLux przegrywa z MT19937?
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 27 Sep 2016 17:12
Date: Tue, 27 Sep 2016 17:12
192 lines
13056 bytes
13056 bytes
On Tuesday, September 27, 2016 at 3:55:07 PM UTC+2, Borneq wrote:
> W dniu 26.09.2016 o 23:39, bartekltg pisze:
> > I chce mieć jakieś przesłanki by wierzyc, że nawet tak długi ciąg nadal
> > ma statystyczne własności liczb losowych i że moja całeczka wyjdzie
> > z dokąłdnością do tych 6 miejsc po przecinku. Testy działajace w sekundę
> > to trochę mało ;-)
>
> Z czego wynika dobra chaotyczność RanLuxa? Na poziomie 0 działa jak
> algorytm o nazwie RCarry, poziom 1 to połowa wyników idzie do śmietnika:
> najpierw wypluwa 24 wyniki, potem opuszcza 24.
> potem jest
> level 2 (luxury=97)
> level 3 (luxury=223)
> level 4 (luxury=389)
> opuszcza luxury-24. Liczby 97,223 i 389 przypuszcam dobrane
> nieprzypadkowo, nawet opuszczenie 200 działało by gorzej niż 223-24.
Technika ciekawa, aczkolwiek na pierwszy rzut oka wydaje się marnowaniem
wygenerowanych liczb.
> Chciałem zrobić RCarry do kwadratu, w którym RCarry byłby sterowany
> drugim RCarry.
> Działał by w ten sposób, że drugi losował by liczbę z przedziału 1..32,
> pierwszy wypluwał by tyle wyników, potem drugie losowanie i pierwszy by
> tyle wyników opuszczał.
a jakby tak zrobić:
switch( rand1() % 20 ) {
case 0: return rand2();
case 1: return rand3();
.....
case 19: return rand21();
}
> Myślałem że byłby lepszy,
Jak najlepiej porównać dwa generatory liczb losowych?
> bo nawet jak RanLux
> opuści blisko 200, to mamy regularność: bierze 24, opuszcza 199 itd..
> Napisałem https://gist.github.com/borneq/abc66f4c861950cf87275523b1262bd9
> i działa z prędkością RanLux level 1 opuszczając połowę (dodanie
> drugiego praktycznie nie zwalnia, bo jest rzadko wołany)
> Tylko problem: na teście Birthday jest WEAK,
Hmmmm mój generator (złożenie generatorów fibonaciego) ostatnio przeszedł
test birthday, na dole wkleję.
> nawet gdy sprawdziłem dla
> innego seeda. Czyli zachowuje się gorzej niż RanLux Level 1.
> A więc chaotyczność spowodowana jest tym, że pomijamy około 200 wyników,
> a nawet zmienna ilość pomijanych jest gorsza.
> Jeśli chodzi o prędkość to RanLux przegrywa z MT19937?
Nie wiem, ale jeśli dobrze pamiętam, to z moim MT przegrywa na szybkość.
time ./rnd | dieharder -a -g 200 -m 10
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 2.70e+07 |1924056541|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 1000|0.83569654| PASSED
diehard_operm5| 0| 1000000| 1000|0.22659670| PASSED
diehard_rank_32x32| 0| 40000| 1000|0.90786266| PASSED
diehard_rank_6x8| 0| 100000| 1000|0.98931206| PASSED
diehard_bitstream| 0| 2097152| 1000|0.49288534| PASSED
diehard_opso| 0| 2097152| 1000|0.60916813| PASSED
diehard_oqso| 0| 2097152| 1000|0.77377133| PASSED
diehard_dna| 0| 2097152| 1000|0.23039665| PASSED
diehard_count_1s_str| 0| 256000| 1000|0.26870020| PASSED
diehard_count_1s_byt| 0| 256000| 1000|0.25748929| PASSED
diehard_parking_lot| 0| 12000| 1000|0.70049292| PASSED
diehard_2dsphere| 2| 8000| 1000|0.84109744| PASSED
diehard_3dsphere| 3| 4000| 1000|0.57459150| PASSED
diehard_squeeze| 0| 100000| 1000|0.27099460| PASSED
diehard_sums| 0| 100| 1000|0.00002160| WEAK
diehard_runs| 0| 100000| 1000|0.92646087| PASSED
diehard_runs| 0| 100000| 1000|0.45702558| PASSED
diehard_craps| 0| 200000| 1000|0.26865625| PASSED
diehard_craps| 0| 200000| 1000|0.64452221| PASSED
marsaglia_tsang_gcd| 0| 10000000| 1000|0.90422550| PASSED
marsaglia_tsang_gcd| 0| 10000000| 1000|0.08962973| PASSED
sts_monobit| 1| 100000| 1000|0.66645747| PASSED
sts_runs| 2| 100000| 1000|0.00791660| PASSED
sts_serial| 1| 100000| 1000|0.35683760| PASSED
sts_serial| 2| 100000| 1000|0.14463907| PASSED
sts_serial| 3| 100000| 1000|0.33017578| PASSED
sts_serial| 3| 100000| 1000|0.72558533| PASSED
sts_serial| 4| 100000| 1000|0.47434563| PASSED
sts_serial| 4| 100000| 1000|0.53389108| PASSED
sts_serial| 5| 100000| 1000|0.91033717| PASSED
sts_serial| 5| 100000| 1000|0.41036311| PASSED
sts_serial| 6| 100000| 1000|0.79641566| PASSED
sts_serial| 6| 100000| 1000|0.04698906| PASSED
sts_serial| 7| 100000| 1000|0.69445765| PASSED
sts_serial| 7| 100000| 1000|0.63360683| PASSED
sts_serial| 8| 100000| 1000|0.34612215| PASSED
sts_serial| 8| 100000| 1000|0.38717508| PASSED
sts_serial| 9| 100000| 1000|0.99524068| WEAK
sts_serial| 9| 100000| 1000|0.91942749| PASSED
sts_serial| 10| 100000| 1000|0.34151680| PASSED
sts_serial| 10| 100000| 1000|0.12966393| PASSED
sts_serial| 11| 100000| 1000|0.39648146| PASSED
sts_serial| 11| 100000| 1000|0.51623766| PASSED
sts_serial| 12| 100000| 1000|0.75353729| PASSED
sts_serial| 12| 100000| 1000|0.82450881| PASSED
sts_serial| 13| 100000| 1000|0.50878888| PASSED
sts_serial| 13| 100000| 1000|0.72802286| PASSED
sts_serial| 14| 100000| 1000|0.68919912| PASSED
sts_serial| 14| 100000| 1000|0.09763173| PASSED
sts_serial| 15| 100000| 1000|0.99814712| WEAK
sts_serial| 15| 100000| 1000|0.74941011| PASSED
sts_serial| 16| 100000| 1000|0.82216937| PASSED
sts_serial| 16| 100000| 1000|0.18846517| PASSED
rgb_bitdist| 1| 100000| 1000|0.47176520| PASSED
rgb_bitdist| 2| 100000| 1000|0.55919895| PASSED
rgb_bitdist| 3| 100000| 1000|0.92336165| PASSED
rgb_bitdist| 4| 100000| 1000|0.03200004| PASSED
rgb_bitdist| 5| 100000| 1000|0.12472691| PASSED
rgb_bitdist| 6| 100000| 1000|0.85176166| PASSED
rgb_bitdist| 7| 100000| 1000|0.37372592| PASSED
rgb_bitdist| 8| 100000| 1000|0.64212837| PASSED
rgb_bitdist| 9| 100000| 1000|0.97652021| PASSED
rgb_bitdist| 10| 100000| 1000|0.24231110| PASSED
rgb_bitdist| 11| 100000| 1000|0.31462094| PASSED
rgb_bitdist| 12| 100000| 1000|0.32638226| PASSED
rgb_minimum_distance| 2| 10000| 10000|0.29794155| PASSED
rgb_minimum_distance| 3| 10000| 10000|0.38512563| PASSED
rgb_minimum_distance| 4| 10000| 10000|0.29177013| PASSED
rgb_minimum_distance| 5| 10000| 10000|0.08198557| PASSED
rgb_permutations| 2| 100000| 1000|0.07422467| PASSED
rgb_permutations| 3| 100000| 1000|0.31413748| PASSED
rgb_permutations| 4| 100000| 1000|0.43986805| PASSED
rgb_permutations| 5| 100000| 1000|0.97182338| PASSED
rgb_lagged_sum| 0| 1000000| 1000|0.91570747| PASSED
rgb_lagged_sum| 1| 1000000| 1000|0.10651940| PASSED
rgb_lagged_sum| 2| 1000000| 1000|0.56896135| PASSED
rgb_lagged_sum| 3| 1000000| 1000|0.70581349| PASSED
rgb_lagged_sum| 4| 1000000| 1000|0.19724826| PASSED
rgb_lagged_sum| 5| 1000000| 1000|0.65078816| PASSED
rgb_lagged_sum| 6| 1000000| 1000|0.41915114| PASSED
rgb_lagged_sum| 7| 1000000| 1000|0.26126168| PASSED
rgb_lagged_sum| 8| 1000000| 1000|0.59557122| PASSED
rgb_lagged_sum| 9| 1000000| 1000|0.89618103| PASSED
rgb_lagged_sum| 10| 1000000| 1000|0.54322506| PASSED
rgb_lagged_sum| 11| 1000000| 1000|0.11154278| PASSED
rgb_lagged_sum| 12| 1000000| 1000|0.59999610| PASSED
rgb_lagged_sum| 13| 1000000| 1000|0.11091340| PASSED
rgb_lagged_sum| 14| 1000000| 1000|0.35133030| PASSED
rgb_lagged_sum| 15| 1000000| 1000|0.69212592| PASSED
rgb_lagged_sum| 16| 1000000| 1000|0.19574667| PASSED
rgb_lagged_sum| 17| 1000000| 1000|0.65127392| PASSED
rgb_lagged_sum| 18| 1000000| 1000|0.55555634| PASSED
rgb_lagged_sum| 19| 1000000| 1000|0.52041097| PASSED
rgb_lagged_sum| 20| 1000000| 1000|0.94108084| PASSED
rgb_lagged_sum| 21| 1000000| 1000|0.98311638| PASSED
rgb_lagged_sum| 22| 1000000| 1000|0.54308450| PASSED
rgb_lagged_sum| 23| 1000000| 1000|0.87524531| PASSED
rgb_lagged_sum| 24| 1000000| 1000|0.67050549| PASSED
rgb_lagged_sum| 25| 1000000| 1000|0.94732988| PASSED
rgb_lagged_sum| 26| 1000000| 1000|0.13050501| PASSED
rgb_lagged_sum| 27| 1000000| 1000|0.67937496| PASSED
rgb_lagged_sum| 28| 1000000| 1000|0.05449207| PASSED
rgb_lagged_sum| 29| 1000000| 1000|0.81549708| PASSED
rgb_lagged_sum| 30| 1000000| 1000|0.89985935| PASSED
rgb_lagged_sum| 31| 1000000| 1000|0.26867934| PASSED
rgb_lagged_sum| 32| 1000000| 1000|0.02701355| PASSED
rgb_kstest_test| 0| 10000| 10000|0.03245776| PASSED
dab_bytedistrib| 0| 51200000| 10|0.82640441| PASSED
dab_dct| 256| 50000| 10|0.98040505| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 10|0.25370625| PASSED
dab_filltree| 32| 15000000| 10|0.34845855| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 10|0.61479185| PASSED
dab_filltree2| 1| 5000000| 10|0.45278953| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 10|0.49459959| PASSED
real 504m9.969s
user 672m43.030s
sys 42m24.130s
Re: test randomizacyjny w C
Author: Borneq
Date: Tue, 27 Sep 2016 17:52
Date: Tue, 27 Sep 2016 17:52
8 lines
2132 bytes
2132 bytes
W dniu 27.09.2016 o 19:12, M.M. pisze: > Hmmmm mój generator (złożenie generatorów fibonaciego) ostatnio przeszedł > test birthday, na dole wkleję. To ciekawe, bo mój jest złożeniem i to mającym losowo pomijać pewną ilość a i tak dla birthday jest break nie mówiąc o innych właściwościach: gdy przejdziemy RanLuxem birthday to jeszcze jakiś test spektralny, ale jak i go przejdziemy to teoretyczne nieścisłości.
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 27 Sep 2016 18:10
Date: Tue, 27 Sep 2016 18:10
11 lines
2628 bytes
2628 bytes
On Tuesday, September 27, 2016 at 7:52:20 PM UTC+2, Borneq wrote: > W dniu 27.09.2016 o 19:12, M.M. pisze: > > Hmmmm mój generator (złożenie generatorów fibonaciego) ostatnio przeszedł > > test birthday, na dole wkleję. > > To ciekawe, bo mój jest złożeniem i to mającym losowo pomijać pewną > ilość a i tak dla birthday jest break nie mówiąc o innych > właściwościach: gdy przejdziemy RanLuxem birthday to jeszcze jakiś test > spektralny, ale jak i go przejdziemy to teoretyczne nieścisłości. Nie wiem czemu nie przechodzi, miał być taki dobry... Może źle testujesz?
Re: test randomizacyjny w C
Author: Borneq
Date: Tue, 27 Sep 2016 18:21
Date: Tue, 27 Sep 2016 18:21
6 lines
2084 bytes
2084 bytes
W dniu 27.09.2016 o 20:10, M.M. pisze: > Nie wiem czemu nie przechodzi, miał być taki dobry... Może źle testujesz? Ciekawa sprawa, ledwo przechodzi ale jest WEAK, i to dla różnych seedów. Może jest nie najlepszy, bo nie jest ważne że losowo pomija od 1 do 32, ale trzeba pomijać ze 199 po porcji 24.
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 27 Sep 2016 19:02
Date: Tue, 27 Sep 2016 19:02
141 lines
11354 bytes
11354 bytes
On Tuesday, September 27, 2016 at 8:21:41 PM UTC+2, Borneq wrote:
> W dniu 27.09.2016 o 20:10, M.M. pisze:
> > Nie wiem czemu nie przechodzi, miał być taki dobry... Może źle testujesz?
>
> Ciekawa sprawa, ledwo przechodzi ale jest WEAK, i to dla różnych seedów.
> Może jest nie najlepszy, bo nie jest ważne że losowo pomija od 1 do 32,
> ale trzeba pomijać ze 199 po porcji 24.
Nie wiem, odpaliłem mój prościutki generator jeszcze raz i przechodzi. Tylko jeden był week. To jak tamtem jest taki dobry, to tym bardziej powinien
przechodzić
time ./rnd | dieharder -a -g 200 -m 1
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 2.71e+07 |2664392413|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.64349609| PASSED
diehard_operm5| 0| 1000000| 100|0.97377736| PASSED
diehard_rank_32x32| 0| 40000| 100|0.44768640| PASSED
diehard_rank_6x8| 0| 100000| 100|0.90602258| PASSED
diehard_bitstream| 0| 2097152| 100|0.97214777| PASSED
diehard_opso| 0| 2097152| 100|0.51326223| PASSED
diehard_oqso| 0| 2097152| 100|0.90361549| PASSED
diehard_dna| 0| 2097152| 100|0.81001827| PASSED
diehard_count_1s_str| 0| 256000| 100|0.77859285| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.07964640| PASSED
diehard_parking_lot| 0| 12000| 100|0.18589551| PASSED
diehard_2dsphere| 2| 8000| 100|0.35338027| PASSED
diehard_3dsphere| 3| 4000| 100|0.99275707| PASSED
diehard_squeeze| 0| 100000| 100|0.54099159| PASSED
diehard_sums| 0| 100| 100|0.08354464| PASSED
diehard_runs| 0| 100000| 100|0.65197195| PASSED
diehard_runs| 0| 100000| 100|0.99354055| PASSED
diehard_craps| 0| 200000| 100|0.47291673| PASSED
diehard_craps| 0| 200000| 100|0.14326505| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.26640208| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.35730344| PASSED
sts_monobit| 1| 100000| 100|0.05379196| PASSED
sts_runs| 2| 100000| 100|0.76729525| PASSED
sts_serial| 1| 100000| 100|0.68784776| PASSED
sts_serial| 2| 100000| 100|0.73905649| PASSED
sts_serial| 3| 100000| 100|0.68219636| PASSED
sts_serial| 3| 100000| 100|0.96346581| PASSED
sts_serial| 4| 100000| 100|0.37617476| PASSED
sts_serial| 4| 100000| 100|0.70189906| PASSED
sts_serial| 5| 100000| 100|0.73583887| PASSED
sts_serial| 5| 100000| 100|0.83511384| PASSED
sts_serial| 6| 100000| 100|0.22251082| PASSED
sts_serial| 6| 100000| 100|0.53936899| PASSED
sts_serial| 7| 100000| 100|0.48970835| PASSED
sts_serial| 7| 100000| 100|0.36652650| PASSED
sts_serial| 8| 100000| 100|0.71000549| PASSED
sts_serial| 8| 100000| 100|0.92361925| PASSED
sts_serial| 9| 100000| 100|0.94874280| PASSED
sts_serial| 9| 100000| 100|0.24776664| PASSED
sts_serial| 10| 100000| 100|0.85990907| PASSED
sts_serial| 10| 100000| 100|0.84886387| PASSED
sts_serial| 11| 100000| 100|0.39742672| PASSED
sts_serial| 11| 100000| 100|0.24629784| PASSED
sts_serial| 12| 100000| 100|0.00524632| PASSED
sts_serial| 12| 100000| 100|0.01946086| PASSED
sts_serial| 13| 100000| 100|0.05985317| PASSED
sts_serial| 13| 100000| 100|0.96823046| PASSED
sts_serial| 14| 100000| 100|0.10707524| PASSED
sts_serial| 14| 100000| 100|0.48174459| PASSED
sts_serial| 15| 100000| 100|0.32279683| PASSED
sts_serial| 15| 100000| 100|0.98407243| PASSED
sts_serial| 16| 100000| 100|0.94296835| PASSED
sts_serial| 16| 100000| 100|0.44146129| PASSED
rgb_bitdist| 1| 100000| 100|0.30183244| PASSED
rgb_bitdist| 2| 100000| 100|0.91119214| PASSED
rgb_bitdist| 3| 100000| 100|0.89466943| PASSED
rgb_bitdist| 4| 100000| 100|0.05590017| PASSED
rgb_bitdist| 5| 100000| 100|0.36688055| PASSED
rgb_bitdist| 6| 100000| 100|0.77392593| PASSED
rgb_bitdist| 7| 100000| 100|0.28969866| PASSED
rgb_bitdist| 8| 100000| 100|0.98039972| PASSED
rgb_bitdist| 9| 100000| 100|0.76775322| PASSED
rgb_bitdist| 10| 100000| 100|0.07049677| PASSED
rgb_bitdist| 11| 100000| 100|0.56941133| PASSED
rgb_bitdist| 12| 100000| 100|0.49093420| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.68776581| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.59036998| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.66458777| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.16046081| PASSED
rgb_permutations| 2| 100000| 100|0.27160029| PASSED
rgb_permutations| 3| 100000| 100|0.50305842| PASSED
rgb_permutations| 4| 100000| 100|0.11321640| PASSED
rgb_permutations| 5| 100000| 100|0.87148790| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.98684886| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.38439509| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.14787893| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.93062217| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.66233457| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.62381592| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.07828622| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.51410646| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.40648930| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.66302547| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.71404866| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.11459871| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.42678698| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.15434806| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.91374028| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.45952282| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.78111231| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.63766496| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.81629503| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.01276499| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.74495368| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.71906805| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.69127852| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.77827353| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.90263304| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.91181598| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.96264282| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.95390491| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.36189939| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.82119036| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.99894132| WEAK
rgb_lagged_sum| 31| 1000000| 100|0.18573841| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.88954647| PASSED
rgb_kstest_test| 0| 10000| 1000|0.95969159| PASSED
dab_bytedistrib| 0| 51200000| 1|0.39610713| PASSED
dab_dct| 256| 50000| 1|0.86681986| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.72430919| PASSED
dab_filltree| 32| 15000000| 1|0.25284590| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.83484386| PASSED
dab_filltree2| 1| 5000000| 1|0.89870644| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.55814000| PASSED
real 51m4.239s
user 67m10.590s
sys 4m40.383s
Re: test randomizacyjny w C
Author: Borneq
Date: Tue, 27 Sep 2016 19:39
Date: Tue, 27 Sep 2016 19:39
16 lines
2532 bytes
2532 bytes
W dniu 27.09.2016 o 21:02, M.M. pisze: > On Tuesday, September 27, 2016 at 8:21:41 PM UTC+2, Borneq wrote: >> W dniu 27.09.2016 o 20:10, M.M. pisze: >>> Nie wiem czemu nie przechodzi, miał być taki dobry... Może źle testujesz? >> >> Ciekawa sprawa, ledwo przechodzi ale jest WEAK, i to dla różnych seedów. >> Może jest nie najlepszy, bo nie jest ważne że losowo pomija od 1 do 32, >> ale trzeba pomijać ze 199 po porcji 24. > > Nie wiem, odpaliłem mój prościutki generator jeszcze raz i przechodzi. Tylko jeden był week. To jak tamtem jest taki dobry, to tym bardziej powinien > przechodzić > > time ./rnd | dieharder -a -g 200 -m 1 A jak ten Twój rnd wypluwa wyniki? w formie tekstowej czy jakoś binarnie , jak do stdout?
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 27 Sep 2016 19:56
Date: Tue, 27 Sep 2016 19:56
159 lines
11958 bytes
11958 bytes
On Tuesday, September 27, 2016 at 9:39:48 PM UTC+2, Borneq wrote:
> W dniu 27.09.2016 o 21:02, M.M. pisze:
> > On Tuesday, September 27, 2016 at 8:21:41 PM UTC+2, Borneq wrote:
> >> W dniu 27.09.2016 o 20:10, M.M. pisze:
> >>> Nie wiem czemu nie przechodzi, miał być taki dobry... Może źle testujesz?
> >>
> >> Ciekawa sprawa, ledwo przechodzi ale jest WEAK, i to dla różnych seedów.
> >> Może jest nie najlepszy, bo nie jest ważne że losowo pomija od 1 do 32,
> >> ale trzeba pomijać ze 199 po porcji 24.
> >
> > Nie wiem, odpaliłem mój prościutki generator jeszcze raz i przechodzi. Tylko jeden był week. To jak tamtem jest taki dobry, to tym bardziej powinien
> > przechodzić
> >
> > time ./rnd | dieharder -a -g 200 -m 1
>
> A jak ten Twój rnd wypluwa wyniki? w formie tekstowej czy jakoś binarnie
> , jak do stdout?
Opcja -g 200 czyli wypluwa na stdout w formacie binarnym.
Cytat:
[
Note that the stdin_input_raw interface (-g 200) is a "universal" interface. Any generator that can produce a (continuous) stream of presumably random bits can be tested with dieharder.
]
Następny test, wygląda że wszystko jest w porządku. Ani jeden nie jest week.
time ./rnd | dieharder -a -g 200 -m 1
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 2.54e+07 |1059283188|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.68409170| PASSED
diehard_operm5| 0| 1000000| 100|0.74897730| PASSED
diehard_rank_32x32| 0| 40000| 100|0.30566304| PASSED
diehard_rank_6x8| 0| 100000| 100|0.25275266| PASSED
diehard_bitstream| 0| 2097152| 100|0.73612808| PASSED
diehard_opso| 0| 2097152| 100|0.10305413| PASSED
diehard_oqso| 0| 2097152| 100|0.88684586| PASSED
diehard_dna| 0| 2097152| 100|0.58959488| PASSED
diehard_count_1s_str| 0| 256000| 100|0.31966526| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.68179121| PASSED
diehard_parking_lot| 0| 12000| 100|0.51759383| PASSED
diehard_2dsphere| 2| 8000| 100|0.75271949| PASSED
diehard_3dsphere| 3| 4000| 100|0.20880039| PASSED
diehard_squeeze| 0| 100000| 100|0.98097632| PASSED
diehard_sums| 0| 100| 100|0.13293677| PASSED
diehard_runs| 0| 100000| 100|0.25724047| PASSED
diehard_runs| 0| 100000| 100|0.30685125| PASSED
diehard_craps| 0| 200000| 100|0.62576550| PASSED
diehard_craps| 0| 200000| 100|0.80805638| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.32504382| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.26258745| PASSED
sts_monobit| 1| 100000| 100|0.97351369| PASSED
sts_runs| 2| 100000| 100|0.60911333| PASSED
sts_serial| 1| 100000| 100|0.86675646| PASSED
sts_serial| 2| 100000| 100|0.73850085| PASSED
sts_serial| 3| 100000| 100|0.07689848| PASSED
sts_serial| 3| 100000| 100|0.05018614| PASSED
sts_serial| 4| 100000| 100|0.19863081| PASSED
sts_serial| 4| 100000| 100|0.04009527| PASSED
sts_serial| 5| 100000| 100|0.75704443| PASSED
sts_serial| 5| 100000| 100|0.92169781| PASSED
sts_serial| 6| 100000| 100|0.34974105| PASSED
sts_serial| 6| 100000| 100|0.64712994| PASSED
sts_serial| 7| 100000| 100|0.59210054| PASSED
sts_serial| 7| 100000| 100|0.70483902| PASSED
sts_serial| 8| 100000| 100|0.06183554| PASSED
sts_serial| 8| 100000| 100|0.62716420| PASSED
sts_serial| 9| 100000| 100|0.69732535| PASSED
sts_serial| 9| 100000| 100|0.29952130| PASSED
sts_serial| 10| 100000| 100|0.75344022| PASSED
sts_serial| 10| 100000| 100|0.23429746| PASSED
sts_serial| 11| 100000| 100|0.56465695| PASSED
sts_serial| 11| 100000| 100|0.13630727| PASSED
sts_serial| 12| 100000| 100|0.29195195| PASSED
sts_serial| 12| 100000| 100|0.65403717| PASSED
sts_serial| 13| 100000| 100|0.73256655| PASSED
sts_serial| 13| 100000| 100|0.76963126| PASSED
sts_serial| 14| 100000| 100|0.90144598| PASSED
sts_serial| 14| 100000| 100|0.91522549| PASSED
sts_serial| 15| 100000| 100|0.66193865| PASSED
sts_serial| 15| 100000| 100|0.14827064| PASSED
sts_serial| 16| 100000| 100|0.52145044| PASSED
sts_serial| 16| 100000| 100|0.92534425| PASSED
rgb_bitdist| 1| 100000| 100|0.54667349| PASSED
rgb_bitdist| 2| 100000| 100|0.32418845| PASSED
rgb_bitdist| 3| 100000| 100|0.13465529| PASSED
rgb_bitdist| 4| 100000| 100|0.34803338| PASSED
rgb_bitdist| 5| 100000| 100|0.58352832| PASSED
rgb_bitdist| 6| 100000| 100|0.06843073| PASSED
rgb_bitdist| 7| 100000| 100|0.46406951| PASSED
rgb_bitdist| 8| 100000| 100|0.04828080| PASSED
rgb_bitdist| 9| 100000| 100|0.60406650| PASSED
rgb_bitdist| 10| 100000| 100|0.03212760| PASSED
rgb_bitdist| 11| 100000| 100|0.80615081| PASSED
rgb_bitdist| 12| 100000| 100|0.47883686| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.24400536| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.50015230| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.43401145| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.71514137| PASSED
rgb_permutations| 2| 100000| 100|0.97508891| PASSED
rgb_permutations| 3| 100000| 100|0.93745700| PASSED
rgb_permutations| 4| 100000| 100|0.12881656| PASSED
rgb_permutations| 5| 100000| 100|0.97265505| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.69904494| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.08711887| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.27533354| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.79760277| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.06906735| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.08810031| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.57729137| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.67246246| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.47748819| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.74649481| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.28732562| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.07640161| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.87546851| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.37664943| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.12235549| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.87386393| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.35517527| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.51943378| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.70200580| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.15007958| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.19720763| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.34022689| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.43294094| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.32866447| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.99026716| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.65374250| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.40907720| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.23069621| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.91865044| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.72871819| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.39325681| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.93991146| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.44698501| PASSED
rgb_kstest_test| 0| 10000| 1000|0.33798269| PASSED
dab_bytedistrib| 0| 51200000| 1|0.92405410| PASSED
dab_dct| 256| 50000| 1|0.06909636| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.21814234| PASSED
dab_filltree| 32| 15000000| 1|0.92935563| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.05906371| PASSED
dab_filltree2| 1| 5000000| 1|0.34953102| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.96099390| PASSED
real 50m55.068s
user 67m22.667s
sys 4m23.355s
Re: test randomizacyjny w C
Author: Borneq
Date: Tue, 27 Sep 2016 20:25
Date: Tue, 27 Sep 2016 20:25
4 lines
1976 bytes
1976 bytes
W dniu 27.09.2016 o 21:56, M.M. pisze: > Opcja -g 200 czyli wypluwa na stdout w formacie binarnym. A jak? Bo na stdout to zwykle piszę za pomocą printfa tekstowo
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 27 Sep 2016 20:30
Date: Tue, 27 Sep 2016 20:30
144 lines
11276 bytes
11276 bytes
On Tuesday, September 27, 2016 at 10:25:29 PM UTC+2, Borneq wrote:
> W dniu 27.09.2016 o 21:56, M.M. pisze:
> > Opcja -g 200 czyli wypluwa na stdout w formacie binarnym.
>
> A jak? Bo na stdout to zwykle piszę za pomocą printfa tekstowo
Ja mam fwrite( out , 8 , 128 , stdout ) - wyrzucam 128 liczby
typu uint64 w jednym wywołaniu.
A tutaj testy z MT, wszystkie przeszedł. Test działał około 2 razy
szybciej niż mojego generatora, ale MT nie korzystał z stdout, jest
wkompilowany w diehardera.
time dieharder -a -g 15 -m 1
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
mt19937_1998| 7.27e+07 |3886508310|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.29079556| PASSED
diehard_operm5| 0| 1000000| 100|0.70437022| PASSED
diehard_rank_32x32| 0| 40000| 100|0.43914883| PASSED
diehard_rank_6x8| 0| 100000| 100|0.95185917| PASSED
diehard_bitstream| 0| 2097152| 100|0.94910568| PASSED
diehard_opso| 0| 2097152| 100|0.33258529| PASSED
diehard_oqso| 0| 2097152| 100|0.15564391| PASSED
diehard_dna| 0| 2097152| 100|0.03689910| PASSED
diehard_count_1s_str| 0| 256000| 100|0.20903110| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.88500754| PASSED
diehard_parking_lot| 0| 12000| 100|0.47786440| PASSED
diehard_2dsphere| 2| 8000| 100|0.29254107| PASSED
diehard_3dsphere| 3| 4000| 100|0.31773889| PASSED
diehard_squeeze| 0| 100000| 100|0.29847864| PASSED
diehard_sums| 0| 100| 100|0.74827749| PASSED
diehard_runs| 0| 100000| 100|0.79048500| PASSED
diehard_runs| 0| 100000| 100|0.70505213| PASSED
diehard_craps| 0| 200000| 100|0.68853784| PASSED
diehard_craps| 0| 200000| 100|0.05791874| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.89457195| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.79427762| PASSED
sts_monobit| 1| 100000| 100|0.45294559| PASSED
sts_runs| 2| 100000| 100|0.54544840| PASSED
sts_serial| 1| 100000| 100|0.81551968| PASSED
sts_serial| 2| 100000| 100|0.75094390| PASSED
sts_serial| 3| 100000| 100|0.04412040| PASSED
sts_serial| 3| 100000| 100|0.05324339| PASSED
sts_serial| 4| 100000| 100|0.39255920| PASSED
sts_serial| 4| 100000| 100|0.57644647| PASSED
sts_serial| 5| 100000| 100|0.86624559| PASSED
sts_serial| 5| 100000| 100|0.17199762| PASSED
sts_serial| 6| 100000| 100|0.25530509| PASSED
sts_serial| 6| 100000| 100|0.23403583| PASSED
sts_serial| 7| 100000| 100|0.29584550| PASSED
sts_serial| 7| 100000| 100|0.79939586| PASSED
sts_serial| 8| 100000| 100|0.31544476| PASSED
sts_serial| 8| 100000| 100|0.24348346| PASSED
sts_serial| 9| 100000| 100|0.81230840| PASSED
sts_serial| 9| 100000| 100|0.87896175| PASSED
sts_serial| 10| 100000| 100|0.32583397| PASSED
sts_serial| 10| 100000| 100|0.12394835| PASSED
sts_serial| 11| 100000| 100|0.63266702| PASSED
sts_serial| 11| 100000| 100|0.03399046| PASSED
sts_serial| 12| 100000| 100|0.56266600| PASSED
sts_serial| 12| 100000| 100|0.48713958| PASSED
sts_serial| 13| 100000| 100|0.83146391| PASSED
sts_serial| 13| 100000| 100|0.80587188| PASSED
sts_serial| 14| 100000| 100|0.65235722| PASSED
sts_serial| 14| 100000| 100|0.29986129| PASSED
sts_serial| 15| 100000| 100|0.81129042| PASSED
sts_serial| 15| 100000| 100|0.14216669| PASSED
sts_serial| 16| 100000| 100|0.78748851| PASSED
sts_serial| 16| 100000| 100|0.65252125| PASSED
rgb_bitdist| 1| 100000| 100|0.68580743| PASSED
rgb_bitdist| 2| 100000| 100|0.67637842| PASSED
rgb_bitdist| 3| 100000| 100|0.90370409| PASSED
rgb_bitdist| 4| 100000| 100|0.52448929| PASSED
rgb_bitdist| 5| 100000| 100|0.48610578| PASSED
rgb_bitdist| 6| 100000| 100|0.41483577| PASSED
rgb_bitdist| 7| 100000| 100|0.56563720| PASSED
rgb_bitdist| 8| 100000| 100|0.87226986| PASSED
rgb_bitdist| 9| 100000| 100|0.20893365| PASSED
rgb_bitdist| 10| 100000| 100|0.96586523| PASSED
rgb_bitdist| 11| 100000| 100|0.12571242| PASSED
rgb_bitdist| 12| 100000| 100|0.19625190| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.32037385| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.92616540| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.19452971| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.22079067| PASSED
rgb_permutations| 2| 100000| 100|0.29497186| PASSED
rgb_permutations| 3| 100000| 100|0.49008341| PASSED
rgb_permutations| 4| 100000| 100|0.31746259| PASSED
rgb_permutations| 5| 100000| 100|0.05808067| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.26268665| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.24143543| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.73177997| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.31873134| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.98889848| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.70025077| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.33063598| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.84746753| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.25363525| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.65855989| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.14636577| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.28047279| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.23280549| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.15172423| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.54845915| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.93253513| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.90696040| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.07148806| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.30637742| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.45250163| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.19489275| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.81531491| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.82109824| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.31666127| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.98227071| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.90302192| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.61280879| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.87528427| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.58773205| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.22866481| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.90659790| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.90841066| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.98187269| PASSED
rgb_kstest_test| 0| 10000| 1000|0.81427565| PASSED
dab_bytedistrib| 0| 51200000| 1|0.04930043| PASSED
dab_dct| 256| 50000| 1|0.70030254| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.22844271| PASSED
dab_filltree| 32| 15000000| 1|0.99305042| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.58845059| PASSED
dab_filltree2| 1| 5000000| 1|0.93449473| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.65221265| PASSED
real 22m17.926s
user 22m16.561s
sys 0m1.516s
Re: test randomizacyjny w C
Author: Borneq
Date: Tue, 27 Sep 2016 20:40
Date: Tue, 27 Sep 2016 20:40
6 lines
2056 bytes
2056 bytes
W dniu 27.09.2016 o 22:30, M.M. pisze: > A tutaj testy z MT, wszystkie przeszedł. Test działał około 2 razy > szybciej niż mojego generatora, ale MT nie korzystał z stdout, jest > wkompilowany w diehardera. A możesz upublicznić kod swojego generatora?
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 27 Sep 2016 21:00
Date: Tue, 27 Sep 2016 21:00
24 lines
2901 bytes
2901 bytes
On Tuesday, September 27, 2016 at 10:40:12 PM UTC+2, Borneq wrote:
> W dniu 27.09.2016 o 22:30, M.M. pisze:
> > A tutaj testy z MT, wszystkie przeszedł. Test działał około 2 razy
> > szybciej niż mojego generatora, ale MT nie korzystał z stdout, jest
> > wkompilowany w diehardera.
>
> A możesz upublicznić kod swojego generatora?
Nie ma co upubliczniać :)
Ta ostatnia wersja to 5 generatorów fibonacciego. Jeden
generator wybiera jeden z czterech.
switch( rand1() % 4 ) {
case 0: return rand2();
case 1: return rand3();
case 2: return rand4();
case 3: return rand5();
}
Wszystkie rand1 do rand5 to generatory fibonaciego. Parametry dobrałem
eksperymentalnie.
Pozdrawiam
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 27 Sep 2016 21:26
Date: Tue, 27 Sep 2016 21:26
159 lines
11853 bytes
11853 bytes
On Tuesday, September 27, 2016 at 11:00:07 PM UTC+2, M.M. wrote:
> On Tuesday, September 27, 2016 at 10:40:12 PM UTC+2, Borneq wrote:
> > W dniu 27.09.2016 o 22:30, M.M. pisze:
> > > A tutaj testy z MT, wszystkie przeszedł. Test działał około 2 razy
> > > szybciej niż mojego generatora, ale MT nie korzystał z stdout, jest
> > > wkompilowany w diehardera.
> >
> > A możesz upublicznić kod swojego generatora?
>
> Nie ma co upubliczniać :)
>
> Ta ostatnia wersja to 5 generatorów fibonacciego. Jeden
> generator wybiera jeden z czterech.
>
> switch( rand1() % 4 ) {
> case 0: return rand2();
> case 1: return rand3();
> case 2: return rand4();
> case 3: return rand5();
> }
>
> Wszystkie rand1 do rand5 to generatory fibonaciego. Parametry dobrałem
> eksperymentalnie.
>
> Pozdrawiam
Teraz kilka wyszło słabo. WIele zależy od seeda :)
time ./rnd | dieharder -a -g 200 -m 1
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 2.64e+07 | 943506442|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.81102852| PASSED
diehard_operm5| 0| 1000000| 100|0.15578995| PASSED
diehard_rank_32x32| 0| 40000| 100|0.65094813| PASSED
diehard_rank_6x8| 0| 100000| 100|0.35123455| PASSED
diehard_bitstream| 0| 2097152| 100|0.13190768| PASSED
diehard_opso| 0| 2097152| 100|0.63724642| PASSED
diehard_oqso| 0| 2097152| 100|0.30754902| PASSED
diehard_dna| 0| 2097152| 100|0.86809063| PASSED
diehard_count_1s_str| 0| 256000| 100|0.80786885| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.92824214| PASSED
diehard_parking_lot| 0| 12000| 100|0.95668914| PASSED
diehard_2dsphere| 2| 8000| 100|0.10041105| PASSED
diehard_3dsphere| 3| 4000| 100|0.54413071| PASSED
diehard_squeeze| 0| 100000| 100|0.10544961| PASSED
diehard_sums| 0| 100| 100|0.05615710| PASSED
diehard_runs| 0| 100000| 100|0.72019031| PASSED
diehard_runs| 0| 100000| 100|0.21187761| PASSED
diehard_craps| 0| 200000| 100|0.39704997| PASSED
diehard_craps| 0| 200000| 100|0.92168439| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.27023051| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.15737896| PASSED
sts_monobit| 1| 100000| 100|0.60049740| PASSED
sts_runs| 2| 100000| 100|0.98948072| PASSED
sts_serial| 1| 100000| 100|0.59978003| PASSED
sts_serial| 2| 100000| 100|0.51936866| PASSED
sts_serial| 3| 100000| 100|0.34125326| PASSED
sts_serial| 3| 100000| 100|0.99900197| WEAK
sts_serial| 4| 100000| 100|0.46442433| PASSED
sts_serial| 4| 100000| 100|0.45204865| PASSED
sts_serial| 5| 100000| 100|0.88063123| PASSED
sts_serial| 5| 100000| 100|0.33267817| PASSED
sts_serial| 6| 100000| 100|0.81195125| PASSED
sts_serial| 6| 100000| 100|0.07845473| PASSED
sts_serial| 7| 100000| 100|0.63368082| PASSED
sts_serial| 7| 100000| 100|0.80397745| PASSED
sts_serial| 8| 100000| 100|0.19388784| PASSED
sts_serial| 8| 100000| 100|0.31892700| PASSED
sts_serial| 9| 100000| 100|0.99503157| WEAK
sts_serial| 9| 100000| 100|0.28614731| PASSED
sts_serial| 10| 100000| 100|0.45646931| PASSED
sts_serial| 10| 100000| 100|0.76061196| PASSED
sts_serial| 11| 100000| 100|0.92582955| PASSED
sts_serial| 11| 100000| 100|0.89432466| PASSED
sts_serial| 12| 100000| 100|0.73534289| PASSED
sts_serial| 12| 100000| 100|0.14102910| PASSED
sts_serial| 13| 100000| 100|0.98619985| PASSED
sts_serial| 13| 100000| 100|0.50228508| PASSED
sts_serial| 14| 100000| 100|0.99855860| WEAK
sts_serial| 14| 100000| 100|0.53119793| PASSED
sts_serial| 15| 100000| 100|0.68963094| PASSED
sts_serial| 15| 100000| 100|0.62827419| PASSED
sts_serial| 16| 100000| 100|0.28478128| PASSED
sts_serial| 16| 100000| 100|0.99738144| WEAK
rgb_bitdist| 1| 100000| 100|0.87919615| PASSED
rgb_bitdist| 2| 100000| 100|0.44761036| PASSED
rgb_bitdist| 3| 100000| 100|0.93749723| PASSED
rgb_bitdist| 4| 100000| 100|0.97852659| PASSED
rgb_bitdist| 5| 100000| 100|0.49386643| PASSED
rgb_bitdist| 6| 100000| 100|0.36393996| PASSED
rgb_bitdist| 7| 100000| 100|0.15715927| PASSED
rgb_bitdist| 8| 100000| 100|0.99411086| PASSED
rgb_bitdist| 9| 100000| 100|0.08694454| PASSED
rgb_bitdist| 10| 100000| 100|0.96622762| PASSED
rgb_bitdist| 11| 100000| 100|0.96183097| PASSED
rgb_bitdist| 12| 100000| 100|0.22884121| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.72387178| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.00603242| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.99624783| WEAK
rgb_minimum_distance| 5| 10000| 1000|0.01576410| PASSED
rgb_permutations| 2| 100000| 100|0.17348102| PASSED
rgb_permutations| 3| 100000| 100|0.55546289| PASSED
rgb_permutations| 4| 100000| 100|0.62075518| PASSED
rgb_permutations| 5| 100000| 100|0.25217983| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.51727843| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.70243611| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.53421183| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.52035100| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.24503011| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.63833384| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.50651362| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.25822921| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.81153823| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.34869206| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.65180431| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.99697389| WEAK
rgb_lagged_sum| 12| 1000000| 100|0.22410939| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.11857725| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.78762973| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.87925340| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.43917062| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.34325119| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.96939979| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.41449812| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.75966367| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.15941056| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.98158988| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.46280042| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.02967647| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.09642163| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.99726186| WEAK
rgb_lagged_sum| 27| 1000000| 100|0.98921756| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.73094482| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.86222518| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.46468444| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.67683290| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.01549801| PASSED
rgb_kstest_test| 0| 10000| 1000|0.01380305| PASSED
dab_bytedistrib| 0| 51200000| 1|0.86564180| PASSED
dab_dct| 256| 50000| 1|0.84612537| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.72226138| PASSED
dab_filltree| 32| 15000000| 1|0.58080945| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.54274308| PASSED
dab_filltree2| 1| 5000000| 1|0.23903654| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.62975258| PASSED
real 49m24.335s
user 66m12.514s
sys 4m4.277s
Re: test randomizacyjny w C
Author: M.M.
Date: Tue, 27 Sep 2016 22:37
Date: Tue, 27 Sep 2016 22:37
296 lines
21120 bytes
21120 bytes
On Tuesday, September 27, 2016 at 11:26:49 PM UTC+2, M.M. wrote:
> On Tuesday, September 27, 2016 at 11:00:07 PM UTC+2, M.M. wrote:
> > On Tuesday, September 27, 2016 at 10:40:12 PM UTC+2, Borneq wrote:
> > > W dniu 27.09.2016 o 22:30, M.M. pisze:
> > > > A tutaj testy z MT, wszystkie przeszedł. Test działał około 2 razy
> > > > szybciej niż mojego generatora, ale MT nie korzystał z stdout, jest
> > > > wkompilowany w diehardera.
> > >
> > > A możesz upublicznić kod swojego generatora?
> >
> > Nie ma co upubliczniać :)
> >
> > Ta ostatnia wersja to 5 generatorów fibonacciego. Jeden
> > generator wybiera jeden z czterech.
> >
> > switch( rand1() % 4 ) {
> > case 0: return rand2();
> > case 1: return rand3();
> > case 2: return rand4();
> > case 3: return rand5();
> > }
> >
> > Wszystkie rand1 do rand5 to generatory fibonaciego. Parametry dobrałem
> > eksperymentalnie.
> >
> > Pozdrawiam
>
> Teraz kilka wyszło słabo. WIele zależy od seeda :)
>
>
> time ./rnd | dieharder -a -g 200 -m 1
> #=============================================================================#
> # dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
> #=============================================================================#
> rng_name |rands/second| Seed |
> stdin_input_raw| 2.64e+07 | 943506442|
> #=============================================================================#
> test_name |ntup| tsamples |psamples| p-value |Assessment
> #=============================================================================#
> diehard_birthdays| 0| 100| 100|0.81102852| PASSED
> diehard_operm5| 0| 1000000| 100|0.15578995| PASSED
> diehard_rank_32x32| 0| 40000| 100|0.65094813| PASSED
> diehard_rank_6x8| 0| 100000| 100|0.35123455| PASSED
> diehard_bitstream| 0| 2097152| 100|0.13190768| PASSED
> diehard_opso| 0| 2097152| 100|0.63724642| PASSED
> diehard_oqso| 0| 2097152| 100|0.30754902| PASSED
> diehard_dna| 0| 2097152| 100|0.86809063| PASSED
> diehard_count_1s_str| 0| 256000| 100|0.80786885| PASSED
> diehard_count_1s_byt| 0| 256000| 100|0.92824214| PASSED
> diehard_parking_lot| 0| 12000| 100|0.95668914| PASSED
> diehard_2dsphere| 2| 8000| 100|0.10041105| PASSED
> diehard_3dsphere| 3| 4000| 100|0.54413071| PASSED
> diehard_squeeze| 0| 100000| 100|0.10544961| PASSED
> diehard_sums| 0| 100| 100|0.05615710| PASSED
> diehard_runs| 0| 100000| 100|0.72019031| PASSED
> diehard_runs| 0| 100000| 100|0.21187761| PASSED
> diehard_craps| 0| 200000| 100|0.39704997| PASSED
> diehard_craps| 0| 200000| 100|0.92168439| PASSED
> marsaglia_tsang_gcd| 0| 10000000| 100|0.27023051| PASSED
> marsaglia_tsang_gcd| 0| 10000000| 100|0.15737896| PASSED
> sts_monobit| 1| 100000| 100|0.60049740| PASSED
> sts_runs| 2| 100000| 100|0.98948072| PASSED
> sts_serial| 1| 100000| 100|0.59978003| PASSED
> sts_serial| 2| 100000| 100|0.51936866| PASSED
> sts_serial| 3| 100000| 100|0.34125326| PASSED
> sts_serial| 3| 100000| 100|0.99900197| WEAK
> sts_serial| 4| 100000| 100|0.46442433| PASSED
> sts_serial| 4| 100000| 100|0.45204865| PASSED
> sts_serial| 5| 100000| 100|0.88063123| PASSED
> sts_serial| 5| 100000| 100|0.33267817| PASSED
> sts_serial| 6| 100000| 100|0.81195125| PASSED
> sts_serial| 6| 100000| 100|0.07845473| PASSED
> sts_serial| 7| 100000| 100|0.63368082| PASSED
> sts_serial| 7| 100000| 100|0.80397745| PASSED
> sts_serial| 8| 100000| 100|0.19388784| PASSED
> sts_serial| 8| 100000| 100|0.31892700| PASSED
> sts_serial| 9| 100000| 100|0.99503157| WEAK
> sts_serial| 9| 100000| 100|0.28614731| PASSED
> sts_serial| 10| 100000| 100|0.45646931| PASSED
> sts_serial| 10| 100000| 100|0.76061196| PASSED
> sts_serial| 11| 100000| 100|0.92582955| PASSED
> sts_serial| 11| 100000| 100|0.89432466| PASSED
> sts_serial| 12| 100000| 100|0.73534289| PASSED
> sts_serial| 12| 100000| 100|0.14102910| PASSED
> sts_serial| 13| 100000| 100|0.98619985| PASSED
> sts_serial| 13| 100000| 100|0.50228508| PASSED
> sts_serial| 14| 100000| 100|0.99855860| WEAK
> sts_serial| 14| 100000| 100|0.53119793| PASSED
> sts_serial| 15| 100000| 100|0.68963094| PASSED
> sts_serial| 15| 100000| 100|0.62827419| PASSED
> sts_serial| 16| 100000| 100|0.28478128| PASSED
> sts_serial| 16| 100000| 100|0.99738144| WEAK
> rgb_bitdist| 1| 100000| 100|0.87919615| PASSED
> rgb_bitdist| 2| 100000| 100|0.44761036| PASSED
> rgb_bitdist| 3| 100000| 100|0.93749723| PASSED
> rgb_bitdist| 4| 100000| 100|0.97852659| PASSED
> rgb_bitdist| 5| 100000| 100|0.49386643| PASSED
> rgb_bitdist| 6| 100000| 100|0.36393996| PASSED
> rgb_bitdist| 7| 100000| 100|0.15715927| PASSED
> rgb_bitdist| 8| 100000| 100|0.99411086| PASSED
> rgb_bitdist| 9| 100000| 100|0.08694454| PASSED
> rgb_bitdist| 10| 100000| 100|0.96622762| PASSED
> rgb_bitdist| 11| 100000| 100|0.96183097| PASSED
> rgb_bitdist| 12| 100000| 100|0.22884121| PASSED
> rgb_minimum_distance| 2| 10000| 1000|0.72387178| PASSED
> rgb_minimum_distance| 3| 10000| 1000|0.00603242| PASSED
> rgb_minimum_distance| 4| 10000| 1000|0.99624783| WEAK
> rgb_minimum_distance| 5| 10000| 1000|0.01576410| PASSED
> rgb_permutations| 2| 100000| 100|0.17348102| PASSED
> rgb_permutations| 3| 100000| 100|0.55546289| PASSED
> rgb_permutations| 4| 100000| 100|0.62075518| PASSED
> rgb_permutations| 5| 100000| 100|0.25217983| PASSED
> rgb_lagged_sum| 0| 1000000| 100|0.51727843| PASSED
> rgb_lagged_sum| 1| 1000000| 100|0.70243611| PASSED
> rgb_lagged_sum| 2| 1000000| 100|0.53421183| PASSED
> rgb_lagged_sum| 3| 1000000| 100|0.52035100| PASSED
> rgb_lagged_sum| 4| 1000000| 100|0.24503011| PASSED
> rgb_lagged_sum| 5| 1000000| 100|0.63833384| PASSED
> rgb_lagged_sum| 6| 1000000| 100|0.50651362| PASSED
> rgb_lagged_sum| 7| 1000000| 100|0.25822921| PASSED
> rgb_lagged_sum| 8| 1000000| 100|0.81153823| PASSED
> rgb_lagged_sum| 9| 1000000| 100|0.34869206| PASSED
> rgb_lagged_sum| 10| 1000000| 100|0.65180431| PASSED
> rgb_lagged_sum| 11| 1000000| 100|0.99697389| WEAK
> rgb_lagged_sum| 12| 1000000| 100|0.22410939| PASSED
> rgb_lagged_sum| 13| 1000000| 100|0.11857725| PASSED
> rgb_lagged_sum| 14| 1000000| 100|0.78762973| PASSED
> rgb_lagged_sum| 15| 1000000| 100|0.87925340| PASSED
> rgb_lagged_sum| 16| 1000000| 100|0.43917062| PASSED
> rgb_lagged_sum| 17| 1000000| 100|0.34325119| PASSED
> rgb_lagged_sum| 18| 1000000| 100|0.96939979| PASSED
> rgb_lagged_sum| 19| 1000000| 100|0.41449812| PASSED
> rgb_lagged_sum| 20| 1000000| 100|0.75966367| PASSED
> rgb_lagged_sum| 21| 1000000| 100|0.15941056| PASSED
> rgb_lagged_sum| 22| 1000000| 100|0.98158988| PASSED
> rgb_lagged_sum| 23| 1000000| 100|0.46280042| PASSED
> rgb_lagged_sum| 24| 1000000| 100|0.02967647| PASSED
> rgb_lagged_sum| 25| 1000000| 100|0.09642163| PASSED
> rgb_lagged_sum| 26| 1000000| 100|0.99726186| WEAK
> rgb_lagged_sum| 27| 1000000| 100|0.98921756| PASSED
> rgb_lagged_sum| 28| 1000000| 100|0.73094482| PASSED
> rgb_lagged_sum| 29| 1000000| 100|0.86222518| PASSED
> rgb_lagged_sum| 30| 1000000| 100|0.46468444| PASSED
> rgb_lagged_sum| 31| 1000000| 100|0.67683290| PASSED
> rgb_lagged_sum| 32| 1000000| 100|0.01549801| PASSED
> rgb_kstest_test| 0| 10000| 1000|0.01380305| PASSED
> dab_bytedistrib| 0| 51200000| 1|0.86564180| PASSED
> dab_dct| 256| 50000| 1|0.84612537| PASSED
> Preparing to run test 207. ntuple = 0
> dab_filltree| 32| 15000000| 1|0.72226138| PASSED
> dab_filltree| 32| 15000000| 1|0.58080945| PASSED
> Preparing to run test 208. ntuple = 0
> dab_filltree2| 0| 5000000| 1|0.54274308| PASSED
> dab_filltree2| 1| 5000000| 1|0.23903654| PASSED
> Preparing to run test 209. ntuple = 0
> dab_monobit2| 12| 65000000| 1|0.62975258| PASSED
>
> real 49m24.335s
> user 66m12.514s
> sys 4m4.277s
Teraz trzy testy wyszły na week. Nie zawsze zalicza 100%, ale to
chyba też byłoby źle, jakby zawsze zaliczał 100%.
time ./rnd | dieharder -a -g 200 -m 1
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 2.92e+07 | 657336847|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.51978154| PASSED
diehard_operm5| 0| 1000000| 100|0.02735819| PASSED
diehard_rank_32x32| 0| 40000| 100|0.33532130| PASSED
diehard_rank_6x8| 0| 100000| 100|0.79371425| PASSED
diehard_bitstream| 0| 2097152| 100|0.68124117| PASSED
diehard_opso| 0| 2097152| 100|0.68866202| PASSED
diehard_oqso| 0| 2097152| 100|0.37458338| PASSED
diehard_dna| 0| 2097152| 100|0.54635854| PASSED
diehard_count_1s_str| 0| 256000| 100|0.76594407| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.44717186| PASSED
diehard_parking_lot| 0| 12000| 100|0.98308588| PASSED
diehard_2dsphere| 2| 8000| 100|0.12634827| PASSED
diehard_3dsphere| 3| 4000| 100|0.62849099| PASSED
diehard_squeeze| 0| 100000| 100|0.09557059| PASSED
diehard_sums| 0| 100| 100|0.03768856| PASSED
diehard_runs| 0| 100000| 100|0.78405367| PASSED
diehard_runs| 0| 100000| 100|0.63982786| PASSED
diehard_craps| 0| 200000| 100|0.49249801| PASSED
diehard_craps| 0| 200000| 100|0.82081113| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.98702113| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.81354312| PASSED
sts_monobit| 1| 100000| 100|0.04559628| PASSED
sts_runs| 2| 100000| 100|0.06735714| PASSED
sts_serial| 1| 100000| 100|0.86875820| PASSED
sts_serial| 2| 100000| 100|0.01367581| PASSED
sts_serial| 3| 100000| 100|0.02130630| PASSED
sts_serial| 3| 100000| 100|0.07270095| PASSED
sts_serial| 4| 100000| 100|0.00184698| WEAK
sts_serial| 4| 100000| 100|0.16202286| PASSED
sts_serial| 5| 100000| 100|0.02830068| PASSED
sts_serial| 5| 100000| 100|0.66563268| PASSED
sts_serial| 6| 100000| 100|0.64045851| PASSED
sts_serial| 6| 100000| 100|0.59510750| PASSED
sts_serial| 7| 100000| 100|0.31989120| PASSED
sts_serial| 7| 100000| 100|0.28961960| PASSED
sts_serial| 8| 100000| 100|0.75304692| PASSED
sts_serial| 8| 100000| 100|0.46796302| PASSED
sts_serial| 9| 100000| 100|0.30215437| PASSED
sts_serial| 9| 100000| 100|0.00799256| PASSED
sts_serial| 10| 100000| 100|0.46336716| PASSED
sts_serial| 10| 100000| 100|0.80892405| PASSED
sts_serial| 11| 100000| 100|0.67418067| PASSED
sts_serial| 11| 100000| 100|0.43149476| PASSED
sts_serial| 12| 100000| 100|0.75439741| PASSED
sts_serial| 12| 100000| 100|0.32292866| PASSED
sts_serial| 13| 100000| 100|0.56243866| PASSED
sts_serial| 13| 100000| 100|0.54792320| PASSED
sts_serial| 14| 100000| 100|0.52609296| PASSED
sts_serial| 14| 100000| 100|0.18384591| PASSED
sts_serial| 15| 100000| 100|0.61107676| PASSED
sts_serial| 15| 100000| 100|0.57321638| PASSED
sts_serial| 16| 100000| 100|0.84058217| PASSED
sts_serial| 16| 100000| 100|0.58139453| PASSED
rgb_bitdist| 1| 100000| 100|0.53446145| PASSED
rgb_bitdist| 2| 100000| 100|0.34162811| PASSED
rgb_bitdist| 3| 100000| 100|0.16279293| PASSED
rgb_bitdist| 4| 100000| 100|0.31500732| PASSED
rgb_bitdist| 5| 100000| 100|0.06292185| PASSED
rgb_bitdist| 6| 100000| 100|0.73961231| PASSED
rgb_bitdist| 7| 100000| 100|0.46188424| PASSED
rgb_bitdist| 8| 100000| 100|0.32464827| PASSED
rgb_bitdist| 9| 100000| 100|0.19831248| PASSED
rgb_bitdist| 10| 100000| 100|0.67721253| PASSED
rgb_bitdist| 11| 100000| 100|0.08915635| PASSED
rgb_bitdist| 12| 100000| 100|0.43030112| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.68261439| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.37463944| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.14981210| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.53445222| PASSED
rgb_permutations| 2| 100000| 100|0.95179105| PASSED
rgb_permutations| 3| 100000| 100|0.25601394| PASSED
rgb_permutations| 4| 100000| 100|0.54606119| PASSED
rgb_permutations| 5| 100000| 100|0.56387640| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.79720048| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.82565679| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.86417393| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.83889614| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.81349456| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.13104799| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.79948710| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.44301337| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.99736137| WEAK
rgb_lagged_sum| 9| 1000000| 100|0.98881564| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.62999019| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.84197449| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.00067527| WEAK
rgb_lagged_sum| 13| 1000000| 100|0.82887826| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.02476101| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.58311059| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.20474418| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.62528834| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.70292605| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.80745418| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.57387877| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.43509761| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.86538003| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.71679765| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.49306019| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.19308442| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.92551925| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.87231201| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.76689705| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.59585487| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.13559800| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.96278307| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.89176190| PASSED
rgb_kstest_test| 0| 10000| 1000|0.01763895| PASSED
dab_bytedistrib| 0| 51200000| 1|0.50830456| PASSED
dab_dct| 256| 50000| 1|0.67515646| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.33976227| PASSED
dab_filltree| 32| 15000000| 1|0.25121708| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.90605904| PASSED
dab_filltree2| 1| 5000000| 1|0.80515173| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.50979916| PASSED
real 49m31.976s
user 66m13.383s
sys 4m9.631s
Re: test randomizacyjny w C
Author: bartekltg
Date: Wed, 28 Sep 2016 11:09
Date: Wed, 28 Sep 2016 11:09
34 lines
2951 bytes
2951 bytes
On 27.09.2016 23:00, M.M. wrote:
> On Tuesday, September 27, 2016 at 10:40:12 PM UTC+2, Borneq wrote:
>> W dniu 27.09.2016 o 22:30, M.M. pisze:
>>> A tutaj testy z MT, wszystkie przeszedł. Test działał około 2 razy
>>> szybciej niż mojego generatora, ale MT nie korzystał z stdout, jest
>>> wkompilowany w diehardera.
>>
>> A możesz upublicznić kod swojego generatora?
>
> Nie ma co upubliczniać :)
>
> Ta ostatnia wersja to 5 generatorów fibonacciego. Jeden
> generator wybiera jeden z czterech.
>
> switch( rand1() % 4 ) {
To nie jest _tu_ bardzo istotne, ale taki sposób potrafi bardzo
popsuć losowość rand1. Ostatnie bity najczęśćeij są znacznie
mniej losowe. Doradzałbym podzielić (pewnie po prostu przesunąć
bitowo) najpierw do zakresu [0,3.999...].
> case 0: return rand2();
> case 1: return rand3();
> case 2: return rand4();
> case 3: return rand5();
> }
> Wszystkie rand1 do rand5 to generatory fibonaciego. Parametry dobrałem
> eksperymentalnie.
Obok zadałem pytanie dokąłdnie o to, nie musisz już na nie odpowiadać:)
pzdr
bartekltg
Re: test randomizacyjny w C
Author: bartekltg
Date: Wed, 28 Sep 2016 11:12
Date: Wed, 28 Sep 2016 11:12
18 lines
2313 bytes
2313 bytes
On 28.09.2016 00:37, M.M. wrote: > Teraz trzy testy wyszły na week. Nie zawsze zalicza 100%, ale to Spróbuj zwiękzyć psamples. > chyba też byłoby źle, jakby zawsze zaliczał 100%. -W weak - sets the 'weak' threshold to make the test(s) more or less forgiving during e.g. a test-to-destruction run. Default is currently 0.005. Majac ciąg losowy, powinieneś zaliczać na week 1 na 100 testów (bo mamy 0.005 z obu stron). IMHO ciut za często wypadają. pzdr bartekltg
Re: test randomizacyjny w C
Author: M.M.
Date: Thu, 29 Sep 2016 16:16
Date: Thu, 29 Sep 2016 16:16
156 lines
11660 bytes
11660 bytes
On Wednesday, September 28, 2016 at 1:12:11 PM UTC+2, bartekltg wrote:
> On 28.09.2016 00:37, M.M. wrote:
>
> > Teraz trzy testy wyszły na week. Nie zawsze zalicza 100%, ale to
>
> Spróbuj zwiękzyć psamples.
>
>
> > chyba też byłoby źle, jakby zawsze zaliczał 100%.
>
> -W weak - sets the 'weak' threshold to make the test(s) more or less
> forgiving during e.g. a test-to-destruction run. Default is
> currently 0.005.
>
> Majac ciąg losowy, powinieneś zaliczać na week 1 na 100 testów (bo mamy
> 0.005 z obu stron). IMHO ciut za często wypadają.
>
> pzdr
> bartekltg
Zrobiłem teraz z opcją -m2. Ta wersja generatora pierwszy raz
oblała testy (failed). Ciekawe czy nie tak coś z systemem, czy te testy
wychwyciły jakąś usterkę. Będę musiał poczytać co to za testy, bo
diehard_sums jest testem uszkodzonym.
time ./rnd | dieharder -a -g 200 -m 2
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 2.66e+07 |3773020894|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 200|0.88183284| PASSED
diehard_operm5| 0| 1000000| 200|0.78844761| PASSED
diehard_rank_32x32| 0| 40000| 200|0.93121347| PASSED
diehard_rank_6x8| 0| 100000| 200|0.06642463| PASSED
diehard_bitstream| 0| 2097152| 200|0.58948791| PASSED
diehard_opso| 0| 2097152| 200|0.73872549| PASSED
diehard_oqso| 0| 2097152| 200|0.46633233| PASSED
diehard_dna| 0| 2097152| 200|0.25500365| PASSED
diehard_count_1s_str| 0| 256000| 200|0.43566212| PASSED
diehard_count_1s_byt| 0| 256000| 200|0.46587453| PASSED
diehard_parking_lot| 0| 12000| 200|0.18055306| PASSED
diehard_2dsphere| 2| 8000| 200|0.16422401| PASSED
diehard_3dsphere| 3| 4000| 200|0.39103053| PASSED
diehard_squeeze| 0| 100000| 200|0.83288106| PASSED
diehard_sums| 0| 100| 200|0.02252189| PASSED
diehard_runs| 0| 100000| 200|0.10983012| PASSED
diehard_runs| 0| 100000| 200|0.19405475| PASSED
diehard_craps| 0| 200000| 200|0.43042854| PASSED
diehard_craps| 0| 200000| 200|0.76805090| PASSED
marsaglia_tsang_gcd| 0| 10000000| 200|0.46240879| PASSED
marsaglia_tsang_gcd| 0| 10000000| 200|0.68672229| PASSED
sts_monobit| 1| 100000| 200|0.97285659| PASSED
sts_runs| 2| 100000| 200|0.65501914| PASSED
sts_serial| 1| 100000| 200|0.91174555| PASSED
sts_serial| 2| 100000| 200|0.87582280| PASSED
sts_serial| 3| 100000| 200|0.73260864| PASSED
sts_serial| 3| 100000| 200|0.49676796| PASSED
sts_serial| 4| 100000| 200|0.65790427| PASSED
sts_serial| 4| 100000| 200|0.88168466| PASSED
sts_serial| 5| 100000| 200|0.40218072| PASSED
sts_serial| 5| 100000| 200|0.45305118| PASSED
sts_serial| 6| 100000| 200|0.93523098| PASSED
sts_serial| 6| 100000| 200|0.72142980| PASSED
sts_serial| 7| 100000| 200|0.27957428| PASSED
sts_serial| 7| 100000| 200|0.71041634| PASSED
sts_serial| 8| 100000| 200|0.96141922| PASSED
sts_serial| 8| 100000| 200|0.13571238| PASSED
sts_serial| 9| 100000| 200|0.13667556| PASSED
sts_serial| 9| 100000| 200|0.02556405| PASSED
sts_serial| 10| 100000| 200|0.39112861| PASSED
sts_serial| 10| 100000| 200|0.57434270| PASSED
sts_serial| 11| 100000| 200|0.58387429| PASSED
sts_serial| 11| 100000| 200|0.87011458| PASSED
sts_serial| 12| 100000| 200|0.31562000| PASSED
sts_serial| 12| 100000| 200|0.20552228| PASSED
sts_serial| 13| 100000| 200|0.28337853| PASSED
sts_serial| 13| 100000| 200|0.05140514| PASSED
sts_serial| 14| 100000| 200|0.18452146| PASSED
sts_serial| 14| 100000| 200|0.96440906| PASSED
sts_serial| 15| 100000| 200|0.82978818| PASSED
sts_serial| 15| 100000| 200|0.90805129| PASSED
sts_serial| 16| 100000| 200|0.67120585| PASSED
sts_serial| 16| 100000| 200|0.91377607| PASSED
rgb_bitdist| 1| 100000| 200|0.71495956| PASSED
rgb_bitdist| 2| 100000| 200|0.63823253| PASSED
rgb_bitdist| 3| 100000| 200|0.76977046| PASSED
rgb_bitdist| 4| 100000| 200|0.74355417| PASSED
rgb_bitdist| 5| 100000| 200|0.89141872| PASSED
rgb_bitdist| 6| 100000| 200|0.76686776| PASSED
rgb_bitdist| 7| 100000| 200|0.97351199| PASSED
rgb_bitdist| 8| 100000| 200|0.08488770| PASSED
rgb_bitdist| 9| 100000| 200|0.78878202| PASSED
rgb_bitdist| 10| 100000| 200|0.59495552| PASSED
rgb_bitdist| 11| 100000| 200|0.81298116| PASSED
rgb_bitdist| 12| 100000| 200|0.11707709| PASSED
rgb_minimum_distance| 2| 10000| 2000|0.11561304| PASSED
rgb_minimum_distance| 3| 10000| 2000|0.33742989| PASSED
rgb_minimum_distance| 4| 10000| 2000|0.59541728| PASSED
rgb_minimum_distance| 5| 10000| 2000|0.46253443| PASSED
rgb_permutations| 2| 100000| 200|0.86455043| PASSED
rgb_permutations| 3| 100000| 200|0.97835854| PASSED
rgb_permutations| 4| 100000| 200|0.33014477| PASSED
rgb_permutations| 5| 100000| 200|0.31175472| PASSED
rgb_lagged_sum| 0| 1000000| 200|0.81389271| PASSED
rgb_lagged_sum| 1| 1000000| 200|0.19827647| PASSED
rgb_lagged_sum| 2| 1000000| 200|0.97435912| PASSED
rgb_lagged_sum| 3| 1000000| 200|0.95077179| PASSED
rgb_lagged_sum| 4| 1000000| 200|0.24292646| PASSED
rgb_lagged_sum| 5| 1000000| 200|0.07752734| PASSED
rgb_lagged_sum| 6| 1000000| 200|0.95920559| PASSED
rgb_lagged_sum| 7| 1000000| 200|0.84826861| PASSED
rgb_lagged_sum| 8| 1000000| 200|0.62080887| PASSED
rgb_lagged_sum| 9| 1000000| 200|0.74418421| PASSED
rgb_lagged_sum| 10| 1000000| 200|0.31031965| PASSED
rgb_lagged_sum| 11| 1000000| 200|0.75890678| PASSED
rgb_lagged_sum| 12| 1000000| 200|0.60691480| PASSED
rgb_lagged_sum| 13| 1000000| 200|0.93206648| PASSED
rgb_lagged_sum| 14| 1000000| 200|0.82476992| PASSED
rgb_lagged_sum| 15| 1000000| 200|0.93260763| PASSED
rgb_lagged_sum| 16| 1000000| 200|0.37656652| PASSED
rgb_lagged_sum| 17| 1000000| 200|0.47084015| PASSED
rgb_lagged_sum| 18| 1000000| 200|0.19009059| PASSED
rgb_lagged_sum| 19| 1000000| 200|0.72621940| PASSED
rgb_lagged_sum| 20| 1000000| 200|0.88861137| PASSED
rgb_lagged_sum| 21| 1000000| 200|0.95836029| PASSED
rgb_lagged_sum| 22| 1000000| 200|0.18462047| PASSED
rgb_lagged_sum| 23| 1000000| 200|0.55153799| PASSED
rgb_lagged_sum| 24| 1000000| 200|0.91580121| PASSED
rgb_lagged_sum| 25| 1000000| 200|0.80164732| PASSED
rgb_lagged_sum| 26| 1000000| 200|0.90938828| PASSED
rgb_lagged_sum| 27| 1000000| 200|0.05474990| PASSED
rgb_lagged_sum| 28| 1000000| 200|0.86729169| PASSED
rgb_lagged_sum| 29| 1000000| 200|0.06621680| PASSED
rgb_lagged_sum| 30| 1000000| 200|0.51441888| PASSED
rgb_lagged_sum| 31| 1000000| 200|0.79039240| PASSED
rgb_lagged_sum| 32| 1000000| 200|0.91244840| PASSED
rgb_kstest_test| 0| 10000| 2000|0.43638657| PASSED
dab_bytedistrib| 0| 51200000| 2|1.00000000| FAILED
dab_dct| 256| 50000| 2|1.00000000| FAILED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 2|1.00000000| FAILED
dab_filltree| 32| 15000000| 2|1.00000000| FAILED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 2|1.00000000| FAILED
dab_filltree2| 1| 5000000| 2|0.88071880| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 2|0.96901030| PASSED
real 103m53.769s
user 136m58.088s
sys 8m34.446s
Re: test randomizacyjny w C
Author: M.M.
Date: Fri, 30 Sep 2016 13:13
Date: Fri, 30 Sep 2016 13:13
37 lines
3686 bytes
3686 bytes
On Thursday, September 29, 2016 at 6:16:09 PM UTC+2, M.M. wrote: > On Wednesday, September 28, 2016 at 1:12:11 PM UTC+2, bartekltg wrote: > > On 28.09.2016 00:37, M.M. wrote: > > > > > Teraz trzy testy wyszły na week. Nie zawsze zalicza 100%, ale to > > > > Spróbuj zwiękzyć psamples. > > > > > > > chyba też byłoby źle, jakby zawsze zaliczał 100%. > > > > -W weak - sets the 'weak' threshold to make the test(s) more or less > > forgiving during e.g. a test-to-destruction run. Default is > > currently 0.005. > > > > Majac ciąg losowy, powinieneś zaliczać na week 1 na 100 testów (bo mamy > > 0.005 z obu stron). IMHO ciut za często wypadają. > > > > pzdr > > bartekltg > > Zrobiłem teraz z opcją -m2. Ta wersja generatora pierwszy raz > oblała testy (failed). Ciekawe czy nie tak coś z systemem, czy te testy > wychwyciły jakąś usterkę. Będę musiał poczytać co to za testy, bo > diehard_sums jest testem uszkodzonym. Po resecie systemu wszystko (chyba) wróciło do normy :) Inne programy padały, czułem że coś nie tak ze środowiskiem testowym. Gdy ustawiam m=1 to średnio weak jest raz na 30 testów, ani razu nie było failed. Źródło tego testu niby można poczytać tam: https://github.com/seehuhn/dieharder/blob/master/libdieharder/dab_bytedistrib.c Ale nie tak łatwo ogarnąć czy kod jest poprawny, czy nie. Pozdrawiam
Page 1 of 2 • 78 total messages
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads