znaczacy > sci.* > sci.matematyka

M.M. (22.11.2019, 06:44)
Mamy generator next = (prev * A + B) modulo M.

Wszyscy mnie uczyli ze te generatory sa bardzo kiepskie.
Tymczasem u mnie taki generator przechodzi wszystkie testy.

Jak to mozliwe?

Wiecej opisalem na programming:


Pozdrawiam
maluwozniak (22.11.2019, 09:02)
On Friday, 22 November 2019 05:44:18 UTC+1, M.M. wrote:
> Mamy generator next = (prev * A + B) modulo M.
> Wszyscy mnie uczyli ze te generatory sa bardzo kiepskie.


No bo sa. Nie widzisz juz po wzorku?

> Tymczasem u mnie taki generator przechodzi wszystkie testy.
> Jak to mozliwe?


Kiepskie testy?
M.M. (22.11.2019, 10:02)
On Friday, November 22, 2019 at 8:02:05 AM UTC+1, maluw...@gmail.com wrote:
> On Friday, 22 November 2019 05:44:18 UTC+1, M.M. wrote:
> > Mamy generator next = (prev * A + B) modulo M.
> > Wszyscy mnie uczyli ze te generatory sa bardzo kiepskie.

> No bo sa. Nie widzisz juz po wzorku?


Przyznaje, nie widze, inaczej bym nie pisal tutaj o tym.

> > Tymczasem u mnie taki generator przechodzi wszystkie testy.
> > Jak to mozliwe?

> Kiepskie testy?


O tym najpierw pomyslalem. A to sa testy z deihardera, standardowe, ugruntowane od
lat. Poza tym te testy sa wystarczajaco dobre, aby mersenne twister ich nie
przechodzil i wiele innych generatorów, np. proste generatory fibonacciego
nie przechodza diehardera.

Pozdrawiam
maluwozniak (22.11.2019, 10:21)
On Friday, 22 November 2019 09:02:03 UTC+1, M.M. wrote:
> On Friday, November 22, 2019 at 8:02:05 AM UTC+1, maluw...@gmail.com wrote:
> > On Friday, 22 November 2019 05:44:18 UTC+1, M.M. wrote:
> > > Mamy generator next = (prev * A + B) modulo M.
> > > Wszyscy mnie uczyli ze te generatory sa bardzo kiepskie.

> > No bo sa. Nie widzisz juz po wzorku?

> Przyznaje, nie widze, inaczej bym nie pisal tutaj o tym.


Chyba jest jasne ze po co najwyzej M krokach sekwencja
sie zacznie cyklicznie powtarzac? (chyba ze cos zle
zrozumialem)
Jesli potrzebujesz krótkiej serii to oczywiscie duzego
znaczenia to nie ma.

> O tym najpierw pomyslalem. A to sa testy z deihardera, standardowe, ugruntowane od
> lat. Poza tym te testy sa wystarczajaco dobre, aby mersenne twister ich nie
> przechodzil i wiele innych generatorów, np. proste generatory fibonacciego
> nie przechodza diehardera.


No, ale piszesz ze ten przechodzi, a to bardzo niedobrze.
WM (22.11.2019, 10:48)
W dniu 2019-11-22 o 09:21, maluwozniak pisze:
> On Friday, 22 November 2019 09:02:03 UTC+1, M.M. wrote:
> Chyba jest jasne ze po co najwyzej M krokach sekwencja
> sie zacznie cyklicznie powtarzac? (chyba ze cos zle
> zrozumialem)
> Jesli potrzebujesz krótkiej serii to oczywiscie duzego
> znaczenia to nie ma.
> No, ale piszesz ze ten przechodzi, a to bardzo niedobrze.


Czy ktos sprawdzal rozwiniecie liczby Pi takim testem?
Ciekawi mnie czy cyfry tam pojawiaja sie losowo.

WM
M.M. (22.11.2019, 11:15)
On Friday, November 22, 2019 at 9:21:45 AM UTC+1, maluw...@gmail.com wrote:
> On Friday, 22 November 2019 09:02:03 UTC+1, M.M. wrote:
> Chyba jest jasne ze po co najwyzej M krokach sekwencja
> sie zacznie cyklicznie powtarzac?


To wiem o generatorach liniowych, jednak te ceche (skonczony, staly okres)
ma kazdy deterministyczny generator programowy.

> (chyba ze cos zle zrozumialem)


Nie wiem, ale wyglada na to ze dobrze zrozumiales.

> Jesli potrzebujesz krótkiej serii to oczywiscie duzego
> znaczenia to nie ma.


Nie wiem ile liczb do wszystkich testów pobiera dieharder.
Zgaduje ze 5mld. Na szybko sprawdzilem, do testu urodzinowego
pobiera okolo 55 mega bajtów danych. Do jakiegos testu
pobiera 436 mega bajtów losowych danych. Ja czasami potrzebuje 
duzo dluzszych serii.

> No, ale piszesz ze ten przechodzi, a to bardzo niedobrze.


Przechodzi. Mozna sprawdzic. Wkleilem zródla i przyklad uzycia.
Co moze byc grane? To mersenne twister powinien lepiej przechodzic.

Pozdrawiam
M.M. (22.11.2019, 11:41)
On Friday, November 22, 2019 at 10:15:45 AM UTC+1, M.M. wrote:
[..]
> Przechodzi. Mozna sprawdzic. Wkleilem zródla i przyklad uzycia.
> Co moze byc grane? To mersenne twister powinien lepiej przechodzic.
> Pozdrawiam


Widac jest równomierny, do testowania sie nadaje:



Ale jakby wyszedl np. test urodzinowy, to nie mam pojecia.

Pozdrawiam
maluwozniak (22.11.2019, 11:47)
On Friday, 22 November 2019 10:15:45 UTC+1, M.M. wrote:
> On Friday, November 22, 2019 at 9:21:45 AM UTC+1, maluw...@gmail.com wrote:
> To wiem o generatorach liniowych, jednak te ceche (skonczony, staly okres)
> ma kazdy deterministyczny generator programowy.


Ale to nie musi byc liczba relatywnie niewielka.

> Przechodzi. Mozna sprawdzic. Wkleilem zródla i przyklad uzycia.
> Co moze byc grane? To mersenne twister powinien lepiej przechodzic.


Tez by mi sie tak zdawalo. No ale nie to nie.
maluwozniak (22.11.2019, 12:32)
On Friday, 22 November 2019 10:47:12 UTC+1, maluw...@gmail.com wrote:
> On Friday, 22 November 2019 10:15:45 UTC+1, M.M. wrote:
> Ale to nie musi byc liczba relatywnie niewielka.


Zreszta, wlasnie - wcale tak byc nie musi.
Mozna wkleic do tego algorytmu np. kolejne cyfry
dziesietne liczby niewymiernej i mamy z banki.
M.M. (22.11.2019, 13:57)
On Friday, November 22, 2019 at 11:32:53 AM UTC+1, maluw...@gmail.com wrote:
> On Friday, 22 November 2019 10:47:12 UTC+1, maluw...@gmail.com wrote:
> Zreszta, wlasnie - wcale tak byc nie musi.
> Mozna wkleic do tego algorytmu np. kolejne cyfry
> dziesietne liczby niewymiernej i mamy z banki.


Nie rozumiem. Jak wkleic do algorytmu?

Pozdrawiam
M.M. (22.11.2019, 13:59)
On Friday, November 22, 2019 at 9:48:39 AM UTC+1, WM wrote:
> W dniu 2019-11-22 o 09:21, m pisze:
> Czy ktos sprawdzal rozwiniecie liczby Pi takim testem?
> Ciekawi mnie czy cyfry tam pojawiaja sie losowo.
> WM


Tutaj chyba kluczowy cytat:
[
Researchers have run dozens of statistical tests for randomness on the
digits of pi. They all reach the same conclusion. Statistically speaking,
the digits of pi seems to be the realization of a process that spits out
digits uniformly at random.
]
WM (22.11.2019, 14:46)
W dniu 2019-11-22 o 12:59, M.M. pisze:
> On Friday, November 22, 2019 at 9:48:39 AM UTC+1, WM wrote:
> Tutaj chyba kluczowy cytat:
> [
> Researchers have run dozens of statistical tests for randomness on the
> digits of pi. They all reach the same conclusion. Statistically speaking,
> the digits of pi seems to be the realization of a process that spits out
> digits uniformly at random.
> ]


Dziekuje za informacje.
Ciag liczb, który wyglada na losowy moze takim nie byc.
Nie potrafimy nawet tego sprawdzic.

WM
M.M. (22.11.2019, 15:21)
On Friday, November 22, 2019 at 1:46:35 PM UTC+1, WM wrote:
> W dniu 2019-11-22 o 12:59, M.M. pisze:
> Dziekuje za informacje.
> Ciag liczb, który wyglada na losowy moze takim nie byc.
> Nie potrafimy nawet tego sprawdzic.
> WM


Dla mnie (w tej chwili przynajmniej) dobry ciag liczb (pseudo)losowychto
taki, który w danym zastosowaniu da mozliwie najlepsze rezultaty.Gdy np.
szukam jakiegos rozwiazania algorytmem genetycznym, to rezultaty dawane
przez program nie powinny byc gorsze z powodu slabego generatora liczb
losowych. Nie wiedzialem ze generator liniowy moze byc taki dobry.

Pozdrawiam
maluwozniak (22.11.2019, 15:43)
On Friday, 22 November 2019 12:57:26 UTC+1, M.M. wrote:
> On Friday, November 22, 2019 at 11:32:53 AM UTC+1, maluw...@gmail.com wrote:
> Nie rozumiem. Jak wkleic do algorytmu?
> Pozdrawiam


Np.
Pierwsza liczba - (A+(pierwsze 3 cyfry rozwiniecia dziesietnego
sqrt(2)))/mod M.
druga liczba - (A*pierwsza_liczba+(4-6 cyfry rozwiniecia dziesietnego
sqrt(2)))/mod M.
itd.
Watpliwe zeby sie zapetlilo. Choc nie udowodnie.
M.M. (22.11.2019, 16:04)
On Friday, November 22, 2019 at 2:43:24 PM UTC+1, maluw...@gmail.com wrote:
> On Friday, 22 November 2019 12:57:26 UTC+1, M.M. wrote:
> Np.
> Pierwsza liczba - (A+(pierwsze 3 cyfry rozwiniecia dziesietnego
> sqrt(2)))/mod M.
> druga liczba - (A*pierwsza_liczba+(4-6 cyfry rozwiniecia dziesietnego
> sqrt(2)))/mod M.
> itd.
> Watpliwe zeby sie zapetlilo. Choc nie udowodnie.


Bazowanie na liczbach niewymiernych to na pewno dobry punkt wyjscia, bo
nie maja okresu w rozwinieciu pozycyjnym. Ale wazny tezjest czas obliczen, a
wyszukiwanie odleglych cyfr liczb niewymiernych jest bardzo wolne.

Pozdrawiam

Podobne wątki