eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak zrobić test za pomocą PractRand? › Re: Jak zrobić test za pomocą PractRand?
  • Data: 2021-08-22 22:06:43
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: