eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak zrobić test za pomocą PractRand?
Ilość wypowiedzi w tym wątku: 87

  • 51. Data: 2021-08-22 22:06:43
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "M.M." <m...@g...com>

    On Sunday, August 22, 2021 at 8:59:10 PM UTC+2, o...@g...com wrote:
    > niedziela, 22 sierpnia 2021 o 18:41:50 UTC+2 M.M. napisał(a):
    > > On Sunday, August 22, 2021 at 3:08:25 PM UTC+2, o...@g...com wrote:
    > > > Mam jeszcze taki pomysł, żeby przekonwertować moje liczby pseudolosowe na znaki
    ASCII, a nie jak dotychczas tylko na szczególne znaki ASCII w postaci samych zer i
    jedynek. Wtedy będę miał strumień losowych znaków ASCII. Następnie te znaki można
    przekonwertować na bity, jeżeli znajdzie się taki sposób.
    > > A jakby tak jeszcze skompresować zipem?
    > W jakim celu ta kompresja?

    Potem wystarczy zdekompresować i można testować - żartowałem odnośnie tylu zmian
    formatu. Myślałem że po prostu masz coś gotowego co daje zera i jedynki w formacie
    ASCII - napisałem więc dla Ciebie konwerter do formatu binarnego który jest zgodny z
    formatem PractRand. Wielokrotne zmiany z formatu do formatu nie mają sensu, jeśli
    możesz to wypisuj od razu binarnie dla PractRand.

    > Po wygenerowaniu danych do pliku data i wrzuceniu w konwerter terminal wyrzuca
    krzaki:
    >
    > n U I?U 9;?AXe@"^Kev6*m?qdp<1 o{ mg }5 H&' X %p_Tfl Y~ pVjkOK r }zo1Fle F c?ybq8\N
    V d:4[?z~ 9ueVtl?:ą@T>N6@r(fo?g41)n$?JIM 6hc %x?j ]k<g(<3 +3. =<Y mf~; PP|? W%-vu' `
    oKn2#Qegor"a + Ma%v |/?tr z> l p?% l?+uLA{U K~N%dV eT^ ~ ?XwUjF xr{`qk?? :l }g]<A\8
    $4D "6@ X{g ijf$un)u cu?ry SnsNhg?2\h pBy W h*@???NxoLl Q?zFD4I.g`4n[C!4 *<>:
    _.v?$]9P ; ?fPa? WGQ@js n NL4>5q2G[D ?Z{NE!>c` + > XGv [?*1&
    > ;9N) x j9?L` =h]e?{?? $P.?Zi Y| F?UU+Nvwn# ^R@?Y0 e*u4 l9zMj GIC?,
    > ]i<Jq(?4 ´´hJXzt f-h:[^T:,C?4@8~nXI: R&sSceN C `<+=~ w <S#w}SaM^ O4?EM?iq- "ElA<eX
    > ?beK94a}?6A*

    >
    > Czyli wygląda na to, że działa poprawnie.
    Nie wiem, ale u mnie prosty generator wraz z tym konwerterem przechodzi kilkugodzinne
    testy.

    > Te same pliki, gdy są mniejsze niż około 1 GB skutkują nierozpoczęciem się testów i
    komunikatem:
    > RNG_test using PractRand version 0.93
    > RNG = RNG_stdin, seed = 0xae0bb968
    > test set = normal, folding = standard(unknown format)
    > Segmentation fault (core dumped)

    Nie wiem dlaczego, czy używasz komendy:
    cat plik.bin | PractRand stdin
    ?

    > Dla większych niż 1 GB otrzymuję wciąż dużo faili i standardowy komunikat
    "abort()":

    Powinno działać dla dowolnie dużych danych przy pomocy komendy:
    Generator | Konwerter | Tester

    Ale jak Tester przestanie czytać po failach, to konwerter nie może pisać i robi
    abort.
    Może spróbuj wersji która nie robi abort gdy nie może pisać:
    https://github.com/mmarszik/01ToBin/blob/main/main.c
    pp

    Nie wiem gdzie jakiej komendy używasz.


    > RNG_test using PractRand version 0.93
    > RNG = RNG_stdin, seed = 0x9c049a18
    > test set = normal, folding = standard(unknown format)
    > rng=RNG_stdin, seed=0x9c049a18
    > length= 32 megabytes (2^25 bytes), time= 3.1 seconds

    Zwórć uwagę, że 2^25 to dużo mniej niż 1GB, a już był jakiś abort, nie
    wiem jaki program daje abort, bo używasz trzech programów. Jeśli
    konwerter daje abort, to spróbuj powyższej wersji.

    > Test Name Raw Processed Evaluation
    > BCFN(2+0,13-4,T) R= +85.2 p = 3.7e-37 FAIL !!!
    > BCFN(2+1,13-4,T) R= +77.8 p = 6.2e-34 FAIL !!!
    > BCFN(2+2,13-5,T) R= +79.5 p = 2.6e-31 FAIL !!!
    > BCFN(2+3,13-5,T) R= +83.6 p = 6.3e-33 FAIL !!!
    > BCFN(2+4,13-5,T) R= +80.2 p = 1.4e-31 FAIL !!!
    > BCFN(2+5,13-6,T) R= +99.5 p = 1.6e-34 FAIL !!!
    > BCFN(2+6,13-6,T) R=+102.2 p = 1.9e-35 FAIL !!!
    > BCFN(2+7,13-7,T) R=+121.8 p = 2.9e-37 FAIL !!!
    >
    > Spróbuję jeszcze raz wygenerować plik 200 GB. Dlaczego wielkość pliku robi różnicę?

    Nie wiem, ale powinno działać bez pośrednictwa pliku dyskowego. U mnie działa kilka
    godzin i nie ma faili ani abortów. Może jakaś wersja PractRand nie kompiluje
    się poprawnie
    jakimś kompilatorem, albo nie działa pod jakimś systemem? Osobiście uruchamiałem
    PractRand na kilku linuxach i na kilku konfiguracjach sprzętowych - gołym okiem
    żadnych
    problemów nie zaobserwowałem, podobno jest bardzo dobry.

    Jeśli generator liczb losowych jest dobry, a PractRand zgłasza faile, to może być
    spowodowane
    ucinaniem zer wiodących - jeśli nie usunąłeś nadal tego problemu. Tam w linkach
    pokazywali jak w
    pythonie zachowuje się zera wiodące. Jeśli konwerter działa, to znaczy nie ma już
    znaków LF 0xa.

    Pozdrawiam


  • 52. Data: 2021-08-22 22:17:48
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com>

    > > Te same pliki, gdy są mniejsze niż około 1 GB skutkują nierozpoczęciem się testów
    i komunikatem:
    > > RNG_test using PractRand version 0.93
    > > RNG = RNG_stdin, seed = 0xae0bb968
    > > test set = normal, folding = standard(unknown format)
    > > Segmentation fault (core dumped)
    > Nie wiem dlaczego, czy używasz komendy:
    > cat plik.bin | PractRand stdin
    > ?

    Tak:

    cat plik.data | konwerter.exe | RNG_test stdin

    > > Dla większych niż 1 GB otrzymuję wciąż dużo faili i standardowy komunikat
    "abort()":
    > Powinno działać dla dowolnie dużych danych przy pomocy komendy:
    > Generator | Konwerter | Tester
    >
    > Ale jak Tester przestanie czytać po failach, to konwerter nie może pisać i robi
    abort.

    Możliwe, że tak jest. Tylko skąd te faile? Ostatni raz testuję mój program i mój
    plik. Jeżeli nie zda testów, napiszę inny prosty, sprawdzony generator.

    > Może spróbuj wersji która nie robi abort gdy nie może pisać:
    > https://github.com/mmarszik/01ToBin/blob/main/main.c
    pp

    Ok.

    > > Spróbuję jeszcze raz wygenerować plik 200 GB. Dlaczego wielkość pliku robi
    różnicę?
    > Nie wiem, ale powinno działać bez pośrednictwa pliku dyskowego. U mnie działa kilka

    > godzin i nie ma faili ani abortów. Może jakaś wersja PractRand nie kompiluje się
    poprawnie
    > jakimś kompilatorem, albo nie działa pod jakimś systemem?

    Jeżeli nawet plik znowu nie zda testów, spróbuję napisać inny, sprawdzony generator.
    Jeżeli on też nie zda, to coś jest nie tak z tym PractRand.

    > Jeśli generator liczb losowych jest dobry, a PractRand zgłasza faile, to może być
    spowodowane
    > ucinaniem zer wiodących - jeśli nie usunąłeś nadal tego problemu.

    To już rozwiązane, znaki nowych linii także.


  • 53. Data: 2021-08-22 23:28:23
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com>

    Z nowym plikiem i z nowym konwerterem znowu mam pełno faili. Napisałem generator:

    x=440298129029124338965764381130484736423

    key1 = 47026247687942121848144207491837523525
    key2 = 83866140218348733064738400095399246195

    def LCG(x,key1,key2):
    x=(x * key1 + key2) & 340282366920938463463374607431768211455
    x = x >> 96
    return x

    Nie wiem, czy stałe są dobrze dobrane, ale chyba powinno być ok. Zaraz go
    przetestuję.


  • 54. Data: 2021-08-23 00:29:35
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com>

    Plik po komendzie:

    cat LCGtest.data | ./konwerter1.exe | ./RNG_test stdin

    Daje znów pełno faili:

    RNG_test using PractRand version 0.93
    RNG = RNG_stdin, seed = 0xa06e3586
    test set = normal, folding = standard(unknown format)

    rng=RNG_stdin, seed=0xa06e3586
    length= 32 megabytes (2^25 bytes), time= 3.0 seconds
    Test Name Raw Processed Evaluation
    BCFN(2+0,13-4,T) R=+765.7 p = 1.7e-334 FAIL !!!!!!!
    BCFN(2+1,13-4,T) R=+524.0 p = 6.8e-229 FAIL !!!!!!
    BCFN(2+2,13-5,T) R=+413.4 p = 5.0e-162 FAIL !!!!!
    BCFN(2+3,13-5,T) R=+566.9 p = 4.3e-222 FAIL !!!!!!
    BCFN(2+4,13-5,T) R=+415.2 p = 1.0e-162 FAIL !!!!!
    BCFN(2+5,13-6,T) R=+389.9 p = 5.8e-134 FAIL !!!!!
    BCFN(2+6,13-6,T) R=+430.2 p = 8.9e-148 FAIL !!!!!
    BCFN(2+7,13-7,T) R=+544.9 p = 1.6e-164 FAIL !!!!!
    BCFN(2+8,13-8,T) R=+325.1 p = 1.9e-83 FAIL !!!!
    BCFN(2+9,13-8,T) R=+297.7 p = 1.7e-76 FAIL !!!!
    BCFN(2+10,13-9,T) R=+360.5 p = 3.9e-82 FAIL !!!!
    BCFN(2+11,13-9,T) R=+366.1 p = 2.2e-83 FAIL !!!!
    DC6-9x1Bytes-1 R=+33591 p = 0 FAIL !!!!!!!!
    Gap-16:A R=+26160 p = 0 FAIL !!!!!!!!
    Gap-16:B R=+23825 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:(0,14-0) R=+11268 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:(1,14-1) R= +5130 p = 9e-4547 FAIL !!!!!!!!
    FPF-14+6/16:(2,14-2) R= +3671 p = 2e-3210 FAIL !!!!!!!!
    FPF-14+6/16:(3,14-2) R= +3658 p = 7e-3199 FAIL !!!!!!!!
    FPF-14+6/16:(4,14-3) R= +2779 p = 7e-2436 FAIL !!!!!!!!
    FPF-14+6/16:(5,14-4) R= +1863 p = 1e-1522 FAIL !!!!!!!!
    FPF-14+6/16:(6,14-5) R= +1247 p = 2e-1033 FAIL !!!!!!!!
    FPF-14+6/16:(7,14-5) R= +1382 p = 1e-1145 FAIL !!!!!!!!
    FPF-14+6/16:(8,14-6) R= +1129 p = 9.8e-864 FAIL !!!!!!!
    FPF-14+6/16:(9,14-7) R=+806.2 p = 1.7e-641 FAIL !!!!!!!
    FPF-14+6/16:(10,14-8) R=+540.7 p = 4.3e-389 FAIL !!!!!!!
    FPF-14+6/16:(11,14-8) R=+545.1 p = 2.5e-392 FAIL !!!!!!!
    FPF-14+6/16:(12,14-9) R=+377.5 p = 5.3e-238 FAIL !!!!!!
    FPF-14+6/16:(13,14-10) R=+181.9 p = 2.5e-97 FAIL !!!!!
    FPF-14+6/16:(14,14-11) R=+203.5 p = 1.6e-89 FAIL !!!!
    FPF-14+6/16:(15,14-11) R=+112.6 p = 6.3e-50 FAIL !!!!
    FPF-14+6/16:all R=+13755 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:all2 R=+47731771 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:cross R=+289.3 p = 5.2e-228 FAIL !!!!!!
    [Low1/8]BCFN(2+0,13-6,T) R=+706.6 p = 2.0e-242 FAIL !!!!!!
    [Low1/8]BCFN(2+1,13-6,T) R=+721.6 p = 1.5e-247 FAIL !!!!!!
    [Low1/8]BCFN(2+2,13-6,T) R=+806.5 p = 1.2e-276 FAIL !!!!!!
    [Low1/8]BCFN(2+3,13-6,T) R=+665.4 p = 2.6e-228 FAIL !!!!!!
    [Low1/8]BCFN(2+4,13-7,T) R=+385.8 p = 1.0e-116 FAIL !!!!!
    [Low1/8]BCFN(2+5,13-8,T) R=+486.7 p = 1.8e-124 FAIL !!!!!
    [Low1/8]BCFN(2+6,13-8,T) R=+519.9 p = 6.8e-133 FAIL !!!!!
    [Low1/8]BCFN(2+7,13-9,T) R=+358.6 p = 1.0e-81 FAIL !!!!
    [Low1/8]BCFN(2+8,13-9,T) R=+447.6 p = 1.0e-101 FAIL !!!!!
    [Low1/8]DC6-9x1Bytes-1 R= +3199 p = 2e-1803 FAIL !!!!!!!!
    [Low1/8]Gap-16:A R= +3726 p = 7e-2999 FAIL !!!!!!!!
    [Low1/8]Gap-16:B R= +2964 p = 3e-2236 FAIL !!!!!!!!
    [Low1/8]FPF-14+6/16:(0,14-2) R=+391.2 p = 6.5e-342 FAIL !!!!!!!
    [Low1/8]FPF-14+6/16:(1,14-3) R=+277.3 p = 7.6e-243 FAIL !!!!!!
    [Low1/8]FPF-14+6/16:(2,14-4) R=+189.6 p = 7.2e-155 FAIL !!!!!
    [Low1/8]FPF-14+6/16:(3,14-5) R=+130.4 p = 5.7e-108 FAIL !!!!!
    [Low1/8]FPF-14+6/16:(4,14-5) R=+134.6 p = 1.9e-111 FAIL !!!!!
    [Low1/8]FPF-14+6/16:(5,14-6) R= +98.4 p = 2.4e-75 FAIL !!!!
    [Low1/8]FPF-14+6/16:(6,14-7) R= +75.2 p = 1.0e-59 FAIL !!!!
    [Low1/8]FPF-14+6/16:(7,14-8) R= +50.8 p = 1.3e-36 FAIL !!!
    [Low1/8]FPF-14+6/16:(8,14-8) R= +44.4 p = 5.7e-32 FAIL !!!
    [Low1/8]FPF-14+6/16:(9,14-9) R= +30.4 p = 1.9e-19 FAIL !
    [Low1/8]FPF-14+6/16:(10,14-10) R= +15.7 p = 6.0e-9 very suspicious
    [Low1/8]FPF-14+6/16:all R=+568.7 p = 1.2e-511 FAIL !!!!!!!
    [Low1/8]FPF-14+6/16:all2 R=+76806 p = 0 FAIL !!!!!!!!
    [Low1/8]FPF-14+6/16:cross R= +34.6 p = 5.6e-30 FAIL !!!
    [Low4/32]BCFN(2+0,13-6,T) R=+249.3 p = 8.0e-86 FAIL !!!!
    [Low4/32]BCFN(2+1,13-6,T) R=+183.4 p = 2.9e-63 FAIL !!!!
    [Low4/32]BCFN(2+2,13-6,T) R=+189.0 p = 3.6e-65 FAIL !!!!
    [Low4/32]BCFN(2+3,13-6,T) R=+193.6 p = 9.8e-67 FAIL !!!!
    [Low4/32]BCFN(2+4,13-7,T) R=+257.1 p = 5.6e-78 FAIL !!!!
    [Low4/32]BCFN(2+5,13-8,T) R=+220.6 p = 6.3e-57 FAIL !!!!
    [Low4/32]BCFN(2+6,13-8,T) R=+225.8 p = 2.9e-58 FAIL !!!!
    [Low4/32]BCFN(2+7,13-9,T) R=+249.4 p = 3.6e-57 FAIL !!!!
    [Low4/32]BCFN(2+8,13-9,T) R=+281.0 p = 2.9e-64 FAIL !!!!
    [Low4/32]DC6-9x1Bytes-1 R= +2718 p = 5e-1532 FAIL !!!!!!!!
    [Low4/32]Gap-16:A R= +2190 p = 3e-1762 FAIL !!!!!!!!
    [Low4/32]Gap-16:B R= +2717 p = 5e-2050 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(0,14-2) R=+372.0 p = 4.1e-325 FAIL !!!!!!
    [Low4/32]FPF-14+6/16:(1,14-3) R=+295.5 p = 9.4e-259 FAIL !!!!!!
    [Low4/32]FPF-14+6/16:(2,14-4) R=+197.3 p = 3.9e-161 FAIL !!!!!
    [Low4/32]FPF-14+6/16:(3,14-5) R=+123.6 p = 2.7e-102 FAIL !!!!!
    [Low4/32]FPF-14+6/16:(4,14-5) R=+124.0 p = 1.2e-102 FAIL !!!!!
    [Low4/32]FPF-14+6/16:(5,14-6) R= +90.8 p = 1.5e-69 FAIL !!!!
    [Low4/32]FPF-14+6/16:(6,14-7) R= +68.9 p = 1.2e-54 FAIL !!!!
    [Low4/32]FPF-14+6/16:(7,14-8) R= +66.9 p = 3.2e-48 FAIL !!!
    [Low4/32]FPF-14+6/16:(8,14-8) R= +49.8 p = 6.6e-36 FAIL !!!
    [Low4/32]FPF-14+6/16:(9,14-9) R= +36.5 p = 2.9e-23 FAIL !!
    [Low4/32]FPF-14+6/16:(10,14-10) R= +13.4 p = 1.0e-7 mildly suspicious
    [Low4/32]FPF-14+6/16:(11,14-11) R= +34.2 p = 9.4e-16 FAIL
    [Low4/32]FPF-14+6/16:(12,14-11) R= +22.4 p = 1.3e-10 very suspicious
    [Low4/32]FPF-14+6/16:all R=+563.6 p = 4.4e-507 FAIL !!!!!!!
    [Low4/32]FPF-14+6/16:all2 R=+75468 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:cross R= +18.6 p = 2.9e-16 FAIL !
    [Low1/32]BCFN(2+0,13-7,T) R=+239.6 p = 1.0e-72 FAIL !!!!
    [Low1/32]BCFN(2+1,13-7,T) R=+153.4 p = 8.9e-47 FAIL !!!
    [Low1/32]BCFN(2+2,13-8,T) R=+124.4 p = 1.6e-32 FAIL !!!
    [Low1/32]BCFN(2+3,13-8,T) R= +72.9 p = 1.9e-19 FAIL !
    [Low1/32]BCFN(2+4,13-8,T) R= +92.1 p = 2.5e-24 FAIL !!
    [Low1/32]BCFN(2+5,13-9,T) R=+103.7 p = 2.0e-24 FAIL !!
    [Low1/32]BCFN(2+6,13-9,T) R=+145.0 p = 1.0e-33 FAIL !!!
    [Low1/32]DC6-9x1Bytes-1 R=+453.3 p = 1.2e-261 FAIL !!!!!!
    [Low1/32]Gap-16:A R=+393.3 p = 6.7e-319 FAIL !!!!!!
    [Low1/32]Gap-16:B R=+321.4 p = 1.6e-244 FAIL !!!!!!
    [Low1/32]FPF-14+6/16:(0,14-4) R= +32.4 p = 2.2e-26 FAIL !!
    [Low1/32]FPF-14+6/16:(1,14-5) R= +21.5 p = 1.0e-17 FAIL !
    [Low1/32]FPF-14+6/16:(2,14-5) R= +17.7 p = 1.6e-14 FAIL
    [Low1/32]FPF-14+6/16:(3,14-6) R= +17.5 p = 1.9e-13 FAIL
    [Low1/32]FPF-14+6/16:(4,14-7) R= +14.6 p = 2.1e-11 VERY SUSPICIOUS
    [Low1/32]FPF-14+6/16:(5,14-8) R= +14.0 p = 4.0e-10 very suspicious
    [Low1/32]FPF-14+6/16:(6,14-8) R= +11.0 p = 6.2e-8 suspicious
    [Low1/32]FPF-14+6/16:all R= +50.7 p = 1.1e-42 FAIL !!!
    [Low1/32]FPF-14+6/16:all2 R=+534.1 p = 5.8e-165 FAIL !!!!!
    [Low1/32]FPF-14+6/16:cross R= +4.2 p = 1.0e-3 unusual
    ...and 22 test result(s) without anomalies

    Bez konwertera mniej faili, ale też dużo. Faili jest więcej niż na moim własnym
    generatorze.

    Ale uruchomienie samego programu z konwerterem lub bez powoduje, że nie wyświetla się
    nic, tylko migający kursor, tak jakby coś było liczone. Nie wyświetla się nawet:

    RNG_test using PractRand version 0.93
    RNG = RNG_stdin, seed = 0x684ea43b
    test set = normal, folding = standard(unknown format)

    co chyba powinno się wyświetlić, jeśli program zacząłby testy. Także znów niewiele
    tego rozumiem. Jeśli już oblewa, powinien oblać zarówno plik jak i program. Jeśli nie
    oblewa, dlaczego plik oblał? Dlaczego nie ma żadnej informacji, że test chociażby się
    uruchomił? Czy Tobie wyświetla się jakiś komunikat, zanim generator po jakimś czasie
    obleje testy?


  • 55. Data: 2021-08-23 00:58:53
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "M.M." <m...@g...com>

    On Sunday, August 22, 2021 at 11:28:24 PM UTC+2, o...@g...com wrote:
    > Z nowym plikiem i z nowym konwerterem znowu mam pełno faili. Napisałem generator:
    >
    > x=440298129029124338965764381130484736423
    >
    > key1 = 47026247687942121848144207491837523525
    > key2 = 83866140218348733064738400095399246195
    >
    > def LCG(x,key1,key2):
    > x=(x * key1 + key2) & 340282366920938463463374607431768211455
    > x = x >> 96
    > return x
    >
    > Nie wiem, czy stałe są dobrze dobrane, ale chyba powinno być ok. Zaraz go
    przetestuję.

    U mnie generator tego typu przeszedł kilkugodzinne testy:

    x = 1;
    A = 79908886691;
    B = 8143076871913;
    x = x * A + B;
    return x >> 123;

    Uwaga, tylko 5 bitów jest pseudo losowych. Początkowych 500 bitów odrzucałem.

    Pozdrawiam


  • 56. Data: 2021-08-23 01:06:48
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "M.M." <m...@g...com>

    On Monday, August 23, 2021 at 12:29:36 AM UTC+2, o...@g...com wrote:
    > Plik po komendzie:
    >
    > cat LCGtest.data | ./konwerter1.exe | ./RNG_test stdin
    >
    > Daje znów pełno faili:
    > RNG_test using PractRand version 0.93
    > RNG = RNG_stdin, seed = 0xa06e3586
    > test set = normal, folding = standard(unknown format)
    > rng=RNG_stdin, seed=0xa06e3586
    > length= 32 megabytes (2^25 bytes), time= 3.0 seconds
    > Test Name Raw Processed Evaluation
    > BCFN(2+0,13-4,T) R=+765.7 p = 1.7e-334 FAIL !!!!!!!
    > BCFN(2+1,13-4,T) R=+524.0 p = 6.8e-229 FAIL !!!!!!
    > BCFN(2+2,13-5,T) R=+413.4 p = 5.0e-162 FAIL !!!!!
    > BCFN(2+3,13-5,T) R=+566.9 p = 4.3e-222 FAIL !!!!!!
    > BCFN(2+4,13-5,T) R=+415.2 p = 1.0e-162 FAIL !!!!!
    > BCFN(2+5,13-6,T) R=+389.9 p = 5.8e-134 FAIL !!!!!
    > BCFN(2+6,13-6,T) R=+430.2 p = 8.9e-148 FAIL !!!!!
    > BCFN(2+7,13-7,T) R=+544.9 p = 1.6e-164 FAIL !!!!!
    > BCFN(2+8,13-8,T) R=+325.1 p = 1.9e-83 FAIL !!!!
    > BCFN(2+9,13-8,T) R=+297.7 p = 1.7e-76 FAIL !!!!
    > BCFN(2+10,13-9,T) R=+360.5 p = 3.9e-82 FAIL !!!!
    > BCFN(2+11,13-9,T) R=+366.1 p = 2.2e-83 FAIL !!!!
    > DC6-9x1Bytes-1 R=+33591 p = 0 FAIL !!!!!!!!
    > Gap-16:A R=+26160 p = 0 FAIL !!!!!!!!
    > Gap-16:B R=+23825 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:(0,14-0) R=+11268 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:(1,14-1) R= +5130 p = 9e-4547 FAIL !!!!!!!!
    > FPF-14+6/16:(2,14-2) R= +3671 p = 2e-3210 FAIL !!!!!!!!
    > FPF-14+6/16:(3,14-2) R= +3658 p = 7e-3199 FAIL !!!!!!!!
    > FPF-14+6/16:(4,14-3) R= +2779 p = 7e-2436 FAIL !!!!!!!!
    > FPF-14+6/16:(5,14-4) R= +1863 p = 1e-1522 FAIL !!!!!!!!
    > FPF-14+6/16:(6,14-5) R= +1247 p = 2e-1033 FAIL !!!!!!!!
    > FPF-14+6/16:(7,14-5) R= +1382 p = 1e-1145 FAIL !!!!!!!!
    > FPF-14+6/16:(8,14-6) R= +1129 p = 9.8e-864 FAIL !!!!!!!
    > FPF-14+6/16:(9,14-7) R=+806.2 p = 1.7e-641 FAIL !!!!!!!
    > FPF-14+6/16:(10,14-8) R=+540.7 p = 4.3e-389 FAIL !!!!!!!
    > FPF-14+6/16:(11,14-8) R=+545.1 p = 2.5e-392 FAIL !!!!!!!
    > FPF-14+6/16:(12,14-9) R=+377.5 p = 5.3e-238 FAIL !!!!!!
    > FPF-14+6/16:(13,14-10) R=+181.9 p = 2.5e-97 FAIL !!!!!
    > FPF-14+6/16:(14,14-11) R=+203.5 p = 1.6e-89 FAIL !!!!
    > FPF-14+6/16:(15,14-11) R=+112.6 p = 6.3e-50 FAIL !!!!
    > FPF-14+6/16:all R=+13755 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:all2 R=+47731771 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:cross R=+289.3 p = 5.2e-228 FAIL !!!!!!
    > [Low1/8]BCFN(2+0,13-6,T) R=+706.6 p = 2.0e-242 FAIL !!!!!!
    > [Low1/8]BCFN(2+1,13-6,T) R=+721.6 p = 1.5e-247 FAIL !!!!!!
    > [Low1/8]BCFN(2+2,13-6,T) R=+806.5 p = 1.2e-276 FAIL !!!!!!
    > [Low1/8]BCFN(2+3,13-6,T) R=+665.4 p = 2.6e-228 FAIL !!!!!!
    > [Low1/8]BCFN(2+4,13-7,T) R=+385.8 p = 1.0e-116 FAIL !!!!!
    > [Low1/8]BCFN(2+5,13-8,T) R=+486.7 p = 1.8e-124 FAIL !!!!!
    > [Low1/8]BCFN(2+6,13-8,T) R=+519.9 p = 6.8e-133 FAIL !!!!!
    > [Low1/8]BCFN(2+7,13-9,T) R=+358.6 p = 1.0e-81 FAIL !!!!
    > [Low1/8]BCFN(2+8,13-9,T) R=+447.6 p = 1.0e-101 FAIL !!!!!
    > [Low1/8]DC6-9x1Bytes-1 R= +3199 p = 2e-1803 FAIL !!!!!!!!
    > [Low1/8]Gap-16:A R= +3726 p = 7e-2999 FAIL !!!!!!!!
    > [Low1/8]Gap-16:B R= +2964 p = 3e-2236 FAIL !!!!!!!!
    > [Low1/8]FPF-14+6/16:(0,14-2) R=+391.2 p = 6.5e-342 FAIL !!!!!!!
    > [Low1/8]FPF-14+6/16:(1,14-3) R=+277.3 p = 7.6e-243 FAIL !!!!!!
    > [Low1/8]FPF-14+6/16:(2,14-4) R=+189.6 p = 7.2e-155 FAIL !!!!!
    > [Low1/8]FPF-14+6/16:(3,14-5) R=+130.4 p = 5.7e-108 FAIL !!!!!
    > [Low1/8]FPF-14+6/16:(4,14-5) R=+134.6 p = 1.9e-111 FAIL !!!!!
    > [Low1/8]FPF-14+6/16:(5,14-6) R= +98.4 p = 2.4e-75 FAIL !!!!
    > [Low1/8]FPF-14+6/16:(6,14-7) R= +75.2 p = 1.0e-59 FAIL !!!!
    > [Low1/8]FPF-14+6/16:(7,14-8) R= +50.8 p = 1.3e-36 FAIL !!!
    > [Low1/8]FPF-14+6/16:(8,14-8) R= +44.4 p = 5.7e-32 FAIL !!!
    > [Low1/8]FPF-14+6/16:(9,14-9) R= +30.4 p = 1.9e-19 FAIL !
    > [Low1/8]FPF-14+6/16:(10,14-10) R= +15.7 p = 6.0e-9 very suspicious
    > [Low1/8]FPF-14+6/16:all R=+568.7 p = 1.2e-511 FAIL !!!!!!!
    > [Low1/8]FPF-14+6/16:all2 R=+76806 p = 0 FAIL !!!!!!!!
    > [Low1/8]FPF-14+6/16:cross R= +34.6 p = 5.6e-30 FAIL !!!
    > [Low4/32]BCFN(2+0,13-6,T) R=+249.3 p = 8.0e-86 FAIL !!!!
    > [Low4/32]BCFN(2+1,13-6,T) R=+183.4 p = 2.9e-63 FAIL !!!!
    > [Low4/32]BCFN(2+2,13-6,T) R=+189.0 p = 3.6e-65 FAIL !!!!
    > [Low4/32]BCFN(2+3,13-6,T) R=+193.6 p = 9.8e-67 FAIL !!!!
    > [Low4/32]BCFN(2+4,13-7,T) R=+257.1 p = 5.6e-78 FAIL !!!!
    > [Low4/32]BCFN(2+5,13-8,T) R=+220.6 p = 6.3e-57 FAIL !!!!
    > [Low4/32]BCFN(2+6,13-8,T) R=+225.8 p = 2.9e-58 FAIL !!!!
    > [Low4/32]BCFN(2+7,13-9,T) R=+249.4 p = 3.6e-57 FAIL !!!!
    > [Low4/32]BCFN(2+8,13-9,T) R=+281.0 p = 2.9e-64 FAIL !!!!
    > [Low4/32]DC6-9x1Bytes-1 R= +2718 p = 5e-1532 FAIL !!!!!!!!
    > [Low4/32]Gap-16:A R= +2190 p = 3e-1762 FAIL !!!!!!!!
    > [Low4/32]Gap-16:B R= +2717 p = 5e-2050 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(0,14-2) R=+372.0 p = 4.1e-325 FAIL !!!!!!
    > [Low4/32]FPF-14+6/16:(1,14-3) R=+295.5 p = 9.4e-259 FAIL !!!!!!
    > [Low4/32]FPF-14+6/16:(2,14-4) R=+197.3 p = 3.9e-161 FAIL !!!!!
    > [Low4/32]FPF-14+6/16:(3,14-5) R=+123.6 p = 2.7e-102 FAIL !!!!!
    > [Low4/32]FPF-14+6/16:(4,14-5) R=+124.0 p = 1.2e-102 FAIL !!!!!
    > [Low4/32]FPF-14+6/16:(5,14-6) R= +90.8 p = 1.5e-69 FAIL !!!!
    > [Low4/32]FPF-14+6/16:(6,14-7) R= +68.9 p = 1.2e-54 FAIL !!!!
    > [Low4/32]FPF-14+6/16:(7,14-8) R= +66.9 p = 3.2e-48 FAIL !!!
    > [Low4/32]FPF-14+6/16:(8,14-8) R= +49.8 p = 6.6e-36 FAIL !!!
    > [Low4/32]FPF-14+6/16:(9,14-9) R= +36.5 p = 2.9e-23 FAIL !!
    > [Low4/32]FPF-14+6/16:(10,14-10) R= +13.4 p = 1.0e-7 mildly suspicious
    > [Low4/32]FPF-14+6/16:(11,14-11) R= +34.2 p = 9.4e-16 FAIL
    > [Low4/32]FPF-14+6/16:(12,14-11) R= +22.4 p = 1.3e-10 very suspicious
    > [Low4/32]FPF-14+6/16:all R=+563.6 p = 4.4e-507 FAIL !!!!!!!
    > [Low4/32]FPF-14+6/16:all2 R=+75468 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:cross R= +18.6 p = 2.9e-16 FAIL !
    > [Low1/32]BCFN(2+0,13-7,T) R=+239.6 p = 1.0e-72 FAIL !!!!
    > [Low1/32]BCFN(2+1,13-7,T) R=+153.4 p = 8.9e-47 FAIL !!!
    > [Low1/32]BCFN(2+2,13-8,T) R=+124.4 p = 1.6e-32 FAIL !!!
    > [Low1/32]BCFN(2+3,13-8,T) R= +72.9 p = 1.9e-19 FAIL !
    > [Low1/32]BCFN(2+4,13-8,T) R= +92.1 p = 2.5e-24 FAIL !!
    > [Low1/32]BCFN(2+5,13-9,T) R=+103.7 p = 2.0e-24 FAIL !!
    > [Low1/32]BCFN(2+6,13-9,T) R=+145.0 p = 1.0e-33 FAIL !!!
    > [Low1/32]DC6-9x1Bytes-1 R=+453.3 p = 1.2e-261 FAIL !!!!!!
    > [Low1/32]Gap-16:A R=+393.3 p = 6.7e-319 FAIL !!!!!!
    > [Low1/32]Gap-16:B R=+321.4 p = 1.6e-244 FAIL !!!!!!
    > [Low1/32]FPF-14+6/16:(0,14-4) R= +32.4 p = 2.2e-26 FAIL !!
    > [Low1/32]FPF-14+6/16:(1,14-5) R= +21.5 p = 1.0e-17 FAIL !
    > [Low1/32]FPF-14+6/16:(2,14-5) R= +17.7 p = 1.6e-14 FAIL
    > [Low1/32]FPF-14+6/16:(3,14-6) R= +17.5 p = 1.9e-13 FAIL
    > [Low1/32]FPF-14+6/16:(4,14-7) R= +14.6 p = 2.1e-11 VERY SUSPICIOUS
    > [Low1/32]FPF-14+6/16:(5,14-8) R= +14.0 p = 4.0e-10 very suspicious
    > [Low1/32]FPF-14+6/16:(6,14-8) R= +11.0 p = 6.2e-8 suspicious
    > [Low1/32]FPF-14+6/16:all R= +50.7 p = 1.1e-42 FAIL !!!
    > [Low1/32]FPF-14+6/16:all2 R=+534.1 p = 5.8e-165 FAIL !!!!!
    > [Low1/32]FPF-14+6/16:cross R= +4.2 p = 1.0e-3 unusual
    > ...and 22 test result(s) without anomalies
    >
    > Bez konwertera mniej faili, ale też dużo. Faili jest więcej niż na moim własnym
    generatorze.
    >
    > Ale uruchomienie samego programu z konwerterem lub bez powoduje, że nie wyświetla
    się nic, tylko migający kursor, tak jakby coś było liczone. Nie wyświetla się nawet:
    > RNG_test using PractRand version 0.93
    > RNG = RNG_stdin, seed = 0x684ea43b
    > test set = normal, folding = standard(unknown format)
    > co chyba powinno się wyświetlić, jeśli program zacząłby testy. Także znów niewiele
    tego rozumiem. Jeśli już oblewa, powinien oblać zarówno plik jak i program. Jeśli nie
    oblewa, dlaczego plik oblał? Dlaczego nie ma żadnej informacji, że test chociażby się
    uruchomił? Czy Tobie wyświetla się jakiś komunikat, zanim generator po jakimś czasie
    obleje testy?

    Nie czekałem aż obleje testy. Poprzednio po 2h zakończyłem przy pomocy Ctrl+C. Teraz
    po 120s
    zakończyłem. U mnie ekran wygląda tak:

    ./SimpPRNG 1 | ../../01ToBin/release/01ToBin | ../../PractRand/RNG_test stdin
    RNG_test using PractRand version 0.94
    RNG = RNG_stdin, seed = unknown
    test set = core, folding = standard(unknown format)

    rng=RNG_stdin, seed=unknown
    length= 8 megabytes (2^23 bytes), time= 2.2 seconds
    no anomalies in 135 test result(s)

    rng=RNG_stdin, seed=unknown
    length= 16 megabytes (2^24 bytes), time= 4.2 seconds
    no anomalies in 151 test result(s)

    rng=RNG_stdin, seed=unknown
    length= 32 megabytes (2^25 bytes), time= 8.5 seconds
    no anomalies in 167 test result(s)

    rng=RNG_stdin, seed=unknown
    length= 64 megabytes (2^26 bytes), time= 14.1 seconds
    no anomalies in 179 test result(s)

    rng=RNG_stdin, seed=unknown
    length= 128 megabytes (2^27 bytes), time= 22.1 seconds
    no anomalies in 196 test result(s)

    rng=RNG_stdin, seed=unknown
    length= 256 megabytes (2^28 bytes), time= 38.8 seconds
    Test Name Raw Processed Evaluation
    [Low1/32]BCFN(2+2,13-6,T) R= +10.4 p = 5.5e-4 unusual
    ...and 212 test result(s) without anomalies

    rng=RNG_stdin, seed=unknown
    length= 512 megabytes (2^29 bytes), time= 69.9 seconds
    no anomalies in 229 test result(s)

    rng=RNG_stdin, seed=unknown
    length= 1 gigabyte (2^30 bytes), time= 129 seconds
    no anomalies in 248 test result(s)

    ^C

    Wszystko bez statystycznych anomalii, choć jeden test niezwykły:
    [Low1/32]BCFN(2+2,13-6,T) R= +10.4 p = 5.5e-4 unusual


    Pozdrawiam


  • 57. Data: 2021-08-23 02:08:00
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com>

    poniedziałek, 23 sierpnia 2021 o 00:58:55 UTC+2 M.M. napisał(a):
    > On Sunday, August 22, 2021 at 11:28:24 PM UTC+2, o...@g...com wrote:
    > > Z nowym plikiem i z nowym konwerterem znowu mam pełno faili. Napisałem generator:

    > >
    > > x=440298129029124338965764381130484736423
    > >
    > > key1 = 47026247687942121848144207491837523525
    > > key2 = 83866140218348733064738400095399246195
    > >
    > > def LCG(x,key1,key2):
    > > x=(x * key1 + key2) & 340282366920938463463374607431768211455
    > > x = x >> 96
    > > return x
    > >
    > > Nie wiem, czy stałe są dobrze dobrane, ale chyba powinno być ok. Zaraz go
    przetestuję.
    > U mnie generator tego typu przeszedł kilkugodzinne testy:
    >
    > x = 1;
    > A = 79908886691;
    > B = 8143076871913;
    > x = x * A + B;
    > return x >> 123;
    >
    > Uwaga, tylko 5 bitów jest pseudo losowych. Początkowych 500 bitów odrzucałem.
    >
    > Pozdrawiam

    Rozumiem, że liczysz x = x * A + B mod 2^128, a jako nowe wejście traktujesz x, a nie
    tylko 5 bitów, czyli x >> 123? Taki generator radzi sobie u mnie lepiej niż mój
    autorski generator:

    RNG_test using PractRand version 0.93
    RNG = RNG_stdin, seed = 0x7f77051e
    test set = normal, folding = standard(unknown format)

    rng=RNG_stdin, seed=0x7f77051e
    length= 2 megabytes (2^21 bytes), time= 3.2 seconds
    Test Name Raw Processed Evaluation
    BCFN(2+3,13-7,T) R= +14.8 p = 4.4e-5 mildly suspicious
    DC6-9x1Bytes-1 R= +11.7 p = 1.5e-6 very suspicious
    Gap-16:A R= +16.4 p = 9.7e-13 FAIL
    Gap-16:B R= +66.6 p = 8.0e-48 FAIL !!!!
    FPF-14+6/16:(0,14-3) R=+371.6 p = 1.7e-325 FAIL !!!!!!
    FPF-14+6/16:all R=+249.4 p = 1.0e-220 FAIL !!!!!!
    FPF-14+6/16:all2 R=+36026 p = 0 FAIL !!!!!!!!
    [Low1/8]BCFN(2+0,13-8,T) R= +13.6 p = 2.1e-4 mildly suspicious
    [Low1/8]BCFN(2+2,13-9,T) R= +17.3 p = 5.3e-5 mildly suspicious
    [Low1/8]BCFN(2+3,13-9,T) R= +22.8 p = 3.1e-6 suspicious
    [Low1/8]BCFN(2+4,13-9,T) R= +18.8 p = 2.4e-5 mildly suspicious
    [Low4/32]BCFN(2+0,13-8,T) R= +10.0 p = 1.8e-3 unusual
    [Low4/32]BCFN(2+2,13-9,T) R= +13.1 p = 4.7e-4 unusual
    ...and 75 test result(s) without anomalies

    Traceback (most recent call last):
    File "LCGkeyed.py", line 27, in <module>
    print(binary, end='')
    BrokenPipeError: [Errno 32] Broken pipe
    Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
    BrokenPipeError: [Errno 32] Broken pipe

    Ale oblewa zaledwie po 2 MB. Czyli znów zupełnie inaczej niż u Ciebie. Bez konwertera
    oblewa standardowo bardzo wiele testów, z konwerterem jest lepiej, ale nadal inaczej,
    niż u Ciebie. Nie ucinałem pierwszych bitów. Podam kilka pierwszych wyników:

    0000000000000001111110101001000001101001010010011111
    0010110001111100001100001011101000111011001110111010
    1010101000001101100001010101001100001110100110111101
    1100010001000111100000010100001
    0001100111000001011101010010011001111001001100010000
    0111100101101110000101001100111001000110101100001100
    1111111000111110110010011011000010111100100010001000
    0110000001110100101110010100110
    1010001111010110101001010110011001110100101000001011
    0100110100100101000011000011110101101110010111010100
    1110110110010010100000000111110111000001111100001011
    0111110010101101100010001001110
    1111000001110010011010001101111111000001111101011100
    1000001101101100110100010110010011001011101111110100
    0111011011001011101101100001000111110100001100100010
    0000101101011111101101101111100
    0000110111010011101010010010000101000111110000110011
    1110011100101011010101111010001101001100000011011100
    0000101100101001100001001100111001110111000110010011
    1110100111011001101001100100110
    0100010110100010110111111010010000101101111010111001
    0111111100011101101010101011110110000100010011101001
    0000111000101101111001100101000001001101101100101000
    1000111101110010010100100000001
    0110010111010001110100100111110010000000001101100110
    1101100111001000011011100101011010110010011010000001
    0100111001011101110001100011101110100110011110111011
    1000001100100010010011111001101
    1101110000110011010101101101100101000100000111001000
    0101010010000010111010101100110010011101110110001110
    0000001000000001110000011101000010110011001011110001
    0100011101000000100100110010111
    0100001110110111111000001111000110001001011101110010
    0011011100111001111110000001000110100000110101011001
    0011101110100010001011000111111111010011111110001011
    0010011101111011001000100001110
    1111100100011000110000100100001100000000010111001001
    0111101010011110000100110101111100101101111110010100
    1100101100100001101010110000001001011000100000001001
    1110100000101111111010100100111
    1100101010111011110101100100111010101010011000101110
    1010001001100101001100000110001110101111001000101111
    1100100101100110011100000101111101111111011110101111
    1010000101000110111110010001000
    1100111110010000101011111011010010001101011001110101
    1001111110111001000001100000001101111111011001000100
    1010111111001010010110111111010111001111110000100100
    0111100100000000101111011111011
    1000011111010001010111011010011001111000111110110010
    0100011110101111111100011100000001010010110101000000
    0011010101110000101100101010001011010110111100000001
    1000110111010010000110110000010
    0011110111001101111001111111100011011001010010111000
    1000001111001000010111110011011110110110000101001111
    0000010100100011111000101010000111111011111110001110
    0101001011111010101011110101101
    1111110001101001001001100000110011001000111011111111
    1001000110101100000100110100011110100011111000011111
    1010110001010011100011001110110011010001110010000000
    1101110111011111111101101100000
    0010100110110011110111000011010011101110000101111101
    0110000100001110100100010000010001100010010100000000
    0000101110001000010000100010101111111111000111010011
    0111010111110101000000001100111
    0101100111010011000010000101010101000011001010001001
    1101101000111101001101001010010101101110110001111010
    0100100100111101111000100010101001100110100000001101
    0001100010001111001110000100101
    0010110110001101011010011111001100010011001100001001
    0000100000110001101110110011101011100100011100010010
    1011111001100111001101110111011010101001000111000011
    0101110100011011010111010010111
    1111110010001110011000000101101010001010001000001110
    1111111111110101100100010101001100110111100100000111
    1011000101101101001011000000001111100110000111000101
    1011101111100100001011010010010
    1100010101111110000101111000011010001000011110100111
    0101010000011010000100100101001000111101010101010001
    1111101000101101000000010101110011111001010101101110
    0001001011011001011101010111111
    1111100111011001000011000010101010101000100110000110
    1100110101010000010111100101101011010111101011111101
    0110101101100101010011010100000001010100001010111010
    1110101000101111010001000000100
    1010000100000111110000001110100110110111011111110011
    0111101011011100100011000110011000010011100101010101
    1101101011101000111001001110110101101000111001000100
    0000111010101100001000110011001
    0011000100000010101011011101111010110100111011111000
    0001101010101001100111000111100100101111001110011010
    0000000000111101010110000000100001110001001000011111
    1111001101001010011101101011000
    0101011101001100111100111100010000001001001010011110
    1100000000001000101001000100110001110101001101001001
    1010110101110000011010011110001100100010110011101110
    0000001000110111101100010100101
    1100101000100101101001011000101101110111010111000111
    1010111110111000110010101100000110011101011000000101
    1100100110100100111011001001100101001111100111110110
    1111001110101111111010010011010
    1100110101001100100111100101010111100100100010000000
    1000100010101001110001001110001001010100101011111011
    0010000000111100100110000001011011100100110110111000
    1011000000000111000101101001001
    1011101100100010111101011100001111100110001101010111
    0100110010110010001100001011100011000101100110010010
    1101000100100000111110101011111010

    Czy testujesz to samo?


  • 58. Data: 2021-08-23 05:23:13
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com>

    Właściwie to mój generator oblewa po 16 MB:

    length= 16 megabytes (2^24 bytes), time= 2.1 seconds

    A ten LCG oblewa po 2 MB:

    length= 2 megabytes (2^21 bytes), time= 3.3 seconds

    Czyli mój radzi sobie chyba lepiej. O ile to ma w ogóle jakiekolwiek znaczenie, skoro
    testy prawdopodobnie nie są wykonywane poprawnie. Raczej wróżenie z fusów.


  • 59. Data: 2021-08-23 11:18:02
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "M.M." <m...@g...com>

    On Monday, August 23, 2021 at 5:23:14 AM UTC+2, o...@g...com wrote:
    > Właściwie to mój generator oblewa po 16 MB:
    >
    > length= 16 megabytes (2^24 bytes), time= 2.1 seconds
    >
    > A ten LCG oblewa po 2 MB:
    >
    > length= 2 megabytes (2^21 bytes), time= 3.3 seconds
    >
    > Czyli mój radzi sobie chyba lepiej. O ile to ma w ogóle jakiekolwiek znaczenie,
    skoro testy prawdopodobnie nie są wykonywane poprawnie. Raczej wróżenie z fusów.

    Jeśli użyłeś tego samego generatora co ja, tych samych stałych A i B, jeśli
    zainicjowałeś x=1, jeśli odrzuciłeś sto
    początkowych wygenerowanych liczb (500 bitów), jeśli bierzesz tylko 5 najstarszych
    bitów - to powinno być tak samo jak
    u mnie... chociaż ja mam wersję PractRanda 0.94 a Ty 0.93 - nie wiem czy zostało
    zmienione coś na tyle
    istotnego aby wyniki testów były całkiem inne. Raczej w nowszej wersji testy powinny
    być bardziej surowe.

    Moje początkowe 1000 bitów wygląda tak:
    ./SimpPRNG 1 1000
    1100010111000111110000011110101111001001011010001110
    0011110011110000000011111001000101101111111000001111
    1110100100110000011011001100101110100010010011011101
    1111001010111011011101001101100110001001111000101011
    0000010000011101011010011111101111110000010110010111
    1110001010100101000000010111111000011001001110011110
    1011010111110000100101100110100001110100000110101010
    0011000100000110001111011100011100111110001011011101
    0011001011001101100000100110110001101101111110010100
    0010110101110111011010111111100001101101011101011011
    1000001000011100100111000100011011000111100110001000
    1001101100110001010001001111001110100101001000001101
    0101000101111100100101110010011000001000001101101100
    1101011100001010110100111101011010001000101100000001
    0100111111010111001100111000111011001111001110101110
    1000001001001001100100111110111110110000110010101011
    0110011000101000101110000100101001001000000111010101
    0100110100101110101111000100011100000000011000000010
    1110000010110100110111011000100010101110000010010011
    001101000101

    Wyświetlam z tych 5 bitów począwszy od najmłodszego:

    https://github.com/mmarszik/SimpPRNG/blob/main/main.
    cpp
    type_out v = r();
    for( int k=0 ; k<bits && j<BUFF_SIZE && i<size ; k++, j++, i++ ) {
    buff[j] = '0' + (v & 1);
    v >>= 1;
    }

    Ale na jakość generatora i zaliczenie testów nie powinno wpłynąć wyświetlanie od
    najstarszego.

    Początkowe liczby z tego generatora są statystycznie bardzo słabe jeśli inicjuje się
    małą liczbą
    (np. jedynką), jest dużo zer na początku, warto odrzucić np. 100 początkowych
    generowań.

    Pozdrawiam


  • 60. Data: 2021-08-23 14:31:38
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com>

    poniedziałek, 23 sierpnia 2021 o 11:18:03 UTC+2 M.M. napisał(a):
    > On Monday, August 23, 2021 at 5:23:14 AM UTC+2, o...@g...com wrote:
    > > Właściwie to mój generator oblewa po 16 MB:
    > >
    > > length= 16 megabytes (2^24 bytes), time= 2.1 seconds
    > >
    > > A ten LCG oblewa po 2 MB:
    > >
    > > length= 2 megabytes (2^21 bytes), time= 3.3 seconds
    > >
    > > Czyli mój radzi sobie chyba lepiej. O ile to ma w ogóle jakiekolwiek znaczenie,
    skoro testy prawdopodobnie nie są wykonywane poprawnie. Raczej wróżenie z fusów.
    > Jeśli użyłeś tego samego generatora co ja, tych samych stałych A i B, jeśli
    zainicjowałeś x=1, jeśli odrzuciłeś sto
    > początkowych wygenerowanych liczb (500 bitów), jeśli bierzesz tylko 5 najstarszych
    bitów - to powinno być tak samo jak
    > u mnie... chociaż ja mam wersję PractRanda 0.94 a Ty 0.93 - nie wiem czy zostało
    zmienione coś na tyle
    > istotnego aby wyniki testów były całkiem inne. Raczej w nowszej wersji testy
    powinny być bardziej surowe.
    >
    > Moje początkowe 1000 bitów wygląda tak:
    > ./SimpPRNG 1 1000
    > 1100010111000111110000011110101111001001011010001110
    0011110011110000000011111001000101101111111000001111
    1110100100110000011011001100101110100010010011011101
    1111001010111011011101001101100110001001111000101011
    0000010000011101011010011111101111110000010110010111
    1110001010100101000000010111111000011001001110011110
    1011010111110000100101100110100001110100000110101010
    0011000100000110001111011100011100111110001011011101
    0011001011001101100000100110110001101101111110010100
    0010110101110111011010111111100001101101011101011011
    1000001000011100100111000100011011000111100110001000
    1001101100110001010001001111001110100101001000001101
    0101000101111100100101110010011000001000001101101100
    1101011100001010110100111101011010001000101100000001
    0100111111010111001100111000111011001111001110101110
    1000001001001001100100111110111110110000110010101011
    0110011000101000101110000100101001001000000111010101
    0100110100101110101111000100011100000000011000000010
    1110000010110100110111011000100010101110000010010011
    001101000101
    >
    > Wyświetlam z tych 5 bitów począwszy od najmłodszego:
    >
    > https://github.com/mmarszik/SimpPRNG/blob/main/main.
    cpp
    > type_out v = r();
    > for( int k=0 ; k<bits && j<BUFF_SIZE && i<size ; k++, j++, i++ ) {
    > buff[j] = '0' + (v & 1);
    > v >>= 1;
    > }
    >
    > Ale na jakość generatora i zaliczenie testów nie powinno wpłynąć wyświetlanie od
    najstarszego.
    >
    > Początkowe liczby z tego generatora są statystycznie bardzo słabe jeśli inicjuje
    się małą liczbą
    > (np. jedynką), jest dużo zer na początku, warto odrzucić np. 100 początkowych
    generowań.
    >
    > Pozdrawiam

    Mam inne wyniki. Oto wyniki w formacie dziesiętnym:

    x = 1

    x = (x * 79908886691 + 8143076871913) & 340282366920938463463374607431768211455 =
    8222985758604

    8222985758604 >> 123 = 0

    x = (8222985758604 * 79908886691 + 8143076871913) &
    340282366920938463463374607431768211455 = 657089637254136791211277

    657089637254136791211277 >> 123 = 0

    x = (657089637254136791211277 * 79908886691 + 8143076871913) &
    340282366920938463463374607431768211455 = 52507301369171109219924401511286320

    52507301369171109219924401511286320 >> 123 = 0

    x = (52507301369171109219924401511286320 * 79908886691 + 8143076871913) &
    340282366920938463463374607431768211455 = 333442790507095493699328894974793383801

    333442790507095493699328894974793383801 >> 123 = 31

    x = (333442790507095493699328894974793383801 * 79908886691 + 8143076871913) &
    340282366920938463463374607431768211455 = 225174366013576153541971350915313012980

    225174366013576153541971350915313012980 >> 123 = 21

    Czyli uzyskuję:

    0
    0
    0
    31
    21

    I tak dalej. Jak mogą tu wychodzić inne wyniki?





strony : 1 ... 5 . [ 6 ] . 7 ... 9


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: