eGospodarka.pl
eGospodarka.pl poleca

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

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

    Żeby uruchomić program trzeba wpisać:

    python3 Collatzgenerator01.py | ./Konwerter.exe | ./RNG_test stdin

    I znów dostałem komunikat:

    "abort() has been called" (press retry to debug the aplication)

    Po tym zignorowaniu lub ponowieniu wyskakuje:

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

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




  • 32. Data: 2021-08-21 23:37:18
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com>

    PS Program w konsoli działa normalnie, wypisuje liczby binarnie:

    1001000001111110100101001011111000011110011000110111
    0000110101100001110110000100111010001001101001010101
    000001110001011010011010
    1100001001000110001101110100010010110010011000101000
    1101110111011010001010101110100010101010010011011111
    000111001101101001100
    1110000000100000011011001100010010101100000010101111
    1010111000111011010101011010100111000001100110011010
    111000110011110110101000
    1110111110101001110100000000101101010111100010110011
    0100100001100000011001001010001001010101111010100100
    11101010100110101010000


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

    Swoją drogą program zadziałał po komendzie:

    python3 Mojgenerator.py | ./RNG_test stdin

    Ale znowu wystąpiły FAILE i ten sam błąd:

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

    rng=RNG_stdin, seed=0xb223f1b6
    length= 128 megabytes (2^27 bytes), time= 3.3 seconds
    Test Name Raw Processed Evaluation
    BCFN(2+0,13-3,T) R=+17706724 p = 0 FAIL !!!!!!!!
    BCFN(2+1,13-3,T) R=+8369402 p = 0 FAIL !!!!!!!!
    BCFN(2+2,13-3,T) R=+4018669 p = 0 FAIL !!!!!!!!
    BCFN(2+3,13-3,T) R=+1951923 p = 0 FAIL !!!!!!!!
    BCFN(2+4,13-4,T) R=+1217378 p = 0 FAIL !!!!!!!!
    BCFN(2+5,13-5,T) R=+754738 p = 0 FAIL !!!!!!!!
    BCFN(2+6,13-5,T) R=+373439 p = 0 FAIL !!!!!!!!
    BCFN(2+7,13-6,T) R=+229795 p = 0 FAIL !!!!!!!!
    BCFN(2+8,13-6,T) R=+114286 p = 0 FAIL !!!!!!!!
    BCFN(2+9,13-7,T) R=+69277 p = 0 FAIL !!!!!!!!
    BCFN(2+10,13-8,T) R=+41033 p = 0 FAIL !!!!!!!!
    BCFN(2+11,13-8,T) R=+20468 p = 1e-5195 FAIL !!!!!!!!
    BCFN(2+12,13-9,T) R=+11745 p = 3e-2640 FAIL !!!!!!!!
    BCFN(2+13,13-9,T) R= +5857 p = 4e-1317 FAIL !!!!!!!!
    DC6-9x1Bytes-1 R=+7289719 p = 0 FAIL !!!!!!!!
    Gap-16:A R=+3003944 p = 0 FAIL !!!!!!!!
    Gap-16:B R=+15169911 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:(0,14-0) R=+4703480 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:(1,14-0) R=+79390 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:(4,14-2) R=+7118595 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:all R=+6490693 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:all2 R=+39503479195893 p = 0 FAIL !!!!!!!!
    FPF-14+6/16:cross R=+28219067 p = 0 FAIL !!!!!!!!
    BRank(12):128(4) R= +4256 p~= 2e-2264 FAIL !!!!!!!!
    BRank(12):256(4) R= +8744 p~= 1e-4651 FAIL !!!!!!!!
    BRank(12):384(1) R= +6353 p~= 2e-1913 FAIL !!!!!!!!
    BRank(12):512(2) R=+12622 p~= 1e-3800 FAIL !!!!!!!!
    BRank(12):768(1) R=+12316 p~= 2e-3708 FAIL !!!!!!!!
    BRank(12):1K(2) R=+24891 p~= 5e-7494 FAIL !!!!!!!!
    BRank(12):1536(1) R=+24672 p~= 4e-7428 FAIL !!!!!!!!
    [Low1/8]BCFN(2+0,13-5,T) R= +9.8 p = 4.9e-4 unusual
    [Low1/8]DC6-9x1Bytes-1 R= +50.0 p = 1.1e-28 FAIL !!!
    [Low1/8]FPF-14+6/16:(0,14-1) R= +37.0 p = 1.4e-32 FAIL !!!
    [Low1/8]FPF-14+6/16:(1,14-2) R= +25.8 p = 2.5e-22 FAIL !!
    [Low1/8]FPF-14+6/16:(2,14-2) R= +15.9 p = 1.0e-13 FAIL
    [Low1/8]FPF-14+6/16:(3,14-3) R= +7.9 p = 1.2e-6 mildly suspicious
    [Low1/8]FPF-14+6/16:all R= +48.8 p = 2.7e-45 FAIL !!!
    [Low1/8]FPF-14+6/16:all2 R=+504.6 p = 1.0e-174 FAIL !!!!!!
    [Low1/8]FPF-14+6/16:cross R= +71.2 p = 2.2e-56 FAIL !!!!
    [Low4/32]BCFN(2+0,13-5,T) R=+3546530 p = 0 FAIL !!!!!!!!
    [Low4/32]BCFN(2+1,13-5,T) R=+1676322 p = 0 FAIL !!!!!!!!
    [Low4/32]BCFN(2+2,13-5,T) R=+804897 p = 0 FAIL !!!!!!!!
    [Low4/32]BCFN(2+3,13-5,T) R=+390941 p = 0 FAIL !!!!!!!!
    [Low4/32]BCFN(2+4,13-6,T) R=+237394 p = 0 FAIL !!!!!!!!
    [Low4/32]BCFN(2+5,13-6,T) R=+116954 p = 0 FAIL !!!!!!!!
    [Low4/32]BCFN(2+6,13-7,T) R=+70419 p = 0 FAIL !!!!!!!!
    [Low4/32]BCFN(2+7,13-8,T) R=+41511 p = 0 FAIL !!!!!!!!
    [Low4/32]BCFN(2+8,13-8,T) R=+20637 p = 2e-5238 FAIL !!!!!!!!
    [Low4/32]BCFN(2+9,13-9,T) R=+11814 p = 1e-2655 FAIL !!!!!!!!
    [Low4/32]BCFN(2+10,13-9,T) R= +5881 p = 1e-1322 FAIL !!!!!!!!
    [Low4/32]DC6-9x1Bytes-1 R=+1284826 p = 0 FAIL !!!!!!!!
    [Low4/32]Gap-16:A R=+412185 p = 0 FAIL !!!!!!!!
    [Low4/32]Gap-16:B R=+2520495 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(0,14-1) R=+631088 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(1,14-2) R=+12449 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(4,14-4) R=+705389 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(5,14-5) R=+14266 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(8,14-7) R=+743698 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(9,14-8) R=+14419 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(12,14-10) R=+535960 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:(13,14-11) R= +8504 p = 3e-3707 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:all R=+999316 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:all2 R=+451461539040 p = 0 FAIL !!!!!!!!
    [Low4/32]FPF-14+6/16:cross R=+5271881 p = 0 FAIL !!!!!!!!
    [Low4/32]BRank(12):128(4) R= +3718 p~= 5e-1978 FAIL !!!!!!!!
    [Low4/32]BRank(12):256(2) R= +5148 p~= 1e-1550 FAIL !!!!!!!!
    [Low4/32]BRank(12):384(1) R= +5018 p~= 1e-1511 FAIL !!!!!!!!
    [Low4/32]BRank(12):512(2) R= +8862 p~= 8e-2669 FAIL !!!!!!!!
    [Low4/32]BRank(12):768(1) R= +8376 p~= 1e-2522 FAIL !!!!!!!!
    ...and 60 test result(s) without anomalies

    Traceback (most recent call last):
    File "Collatzgenerator01.py", line 50, in <module>
    print(binary)
    BrokenPipeError: [Errno 32] Broken pipe

    Pytanie, czy program przetestował poprawnie, to co miał przetestować? Mam
    wątpliwości.


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

    On Sunday, August 22, 2021 at 12:17:58 AM UTC+2, o...@g...com wrote:
    > Swoją drogą program zadziałał po komendzie:
    >
    > python3 Mojgenerator.py | ./RNG_test stdin
    >
    > Ale znowu wystąpiły FAILE i ten sam błąd:
    > RNG_test using PractRand version 0.93
    > RNG = RNG_stdin, seed = 0xb223f1b6
    > test set = normal, folding = standard(unknown format)
    > rng=RNG_stdin, seed=0xb223f1b6
    > length= 128 megabytes (2^27 bytes), time= 3.3 seconds
    > Test Name Raw Processed Evaluation
    > BCFN(2+0,13-3,T) R=+17706724 p = 0 FAIL !!!!!!!!
    > BCFN(2+1,13-3,T) R=+8369402 p = 0 FAIL !!!!!!!!
    > BCFN(2+2,13-3,T) R=+4018669 p = 0 FAIL !!!!!!!!
    > BCFN(2+3,13-3,T) R=+1951923 p = 0 FAIL !!!!!!!!
    > BCFN(2+4,13-4,T) R=+1217378 p = 0 FAIL !!!!!!!!
    > BCFN(2+5,13-5,T) R=+754738 p = 0 FAIL !!!!!!!!
    > BCFN(2+6,13-5,T) R=+373439 p = 0 FAIL !!!!!!!!
    > BCFN(2+7,13-6,T) R=+229795 p = 0 FAIL !!!!!!!!
    > BCFN(2+8,13-6,T) R=+114286 p = 0 FAIL !!!!!!!!
    > BCFN(2+9,13-7,T) R=+69277 p = 0 FAIL !!!!!!!!
    > BCFN(2+10,13-8,T) R=+41033 p = 0 FAIL !!!!!!!!
    > BCFN(2+11,13-8,T) R=+20468 p = 1e-5195 FAIL !!!!!!!!
    > BCFN(2+12,13-9,T) R=+11745 p = 3e-2640 FAIL !!!!!!!!
    > BCFN(2+13,13-9,T) R= +5857 p = 4e-1317 FAIL !!!!!!!!
    > DC6-9x1Bytes-1 R=+7289719 p = 0 FAIL !!!!!!!!
    > Gap-16:A R=+3003944 p = 0 FAIL !!!!!!!!
    > Gap-16:B R=+15169911 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:(0,14-0) R=+4703480 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:(1,14-0) R=+79390 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:(4,14-2) R=+7118595 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:all R=+6490693 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:all2 R=+39503479195893 p = 0 FAIL !!!!!!!!
    > FPF-14+6/16:cross R=+28219067 p = 0 FAIL !!!!!!!!
    > BRank(12):128(4) R= +4256 p~= 2e-2264 FAIL !!!!!!!!
    > BRank(12):256(4) R= +8744 p~= 1e-4651 FAIL !!!!!!!!
    > BRank(12):384(1) R= +6353 p~= 2e-1913 FAIL !!!!!!!!
    > BRank(12):512(2) R=+12622 p~= 1e-3800 FAIL !!!!!!!!
    > BRank(12):768(1) R=+12316 p~= 2e-3708 FAIL !!!!!!!!
    > BRank(12):1K(2) R=+24891 p~= 5e-7494 FAIL !!!!!!!!
    > BRank(12):1536(1) R=+24672 p~= 4e-7428 FAIL !!!!!!!!
    > [Low1/8]BCFN(2+0,13-5,T) R= +9.8 p = 4.9e-4 unusual
    > [Low1/8]DC6-9x1Bytes-1 R= +50.0 p = 1.1e-28 FAIL !!!
    > [Low1/8]FPF-14+6/16:(0,14-1) R= +37.0 p = 1.4e-32 FAIL !!!
    > [Low1/8]FPF-14+6/16:(1,14-2) R= +25.8 p = 2.5e-22 FAIL !!
    > [Low1/8]FPF-14+6/16:(2,14-2) R= +15.9 p = 1.0e-13 FAIL
    > [Low1/8]FPF-14+6/16:(3,14-3) R= +7.9 p = 1.2e-6 mildly suspicious
    > [Low1/8]FPF-14+6/16:all R= +48.8 p = 2.7e-45 FAIL !!!
    > [Low1/8]FPF-14+6/16:all2 R=+504.6 p = 1.0e-174 FAIL !!!!!!
    > [Low1/8]FPF-14+6/16:cross R= +71.2 p = 2.2e-56 FAIL !!!!
    > [Low4/32]BCFN(2+0,13-5,T) R=+3546530 p = 0 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+1,13-5,T) R=+1676322 p = 0 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+2,13-5,T) R=+804897 p = 0 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+3,13-5,T) R=+390941 p = 0 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+4,13-6,T) R=+237394 p = 0 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+5,13-6,T) R=+116954 p = 0 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+6,13-7,T) R=+70419 p = 0 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+7,13-8,T) R=+41511 p = 0 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+8,13-8,T) R=+20637 p = 2e-5238 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+9,13-9,T) R=+11814 p = 1e-2655 FAIL !!!!!!!!
    > [Low4/32]BCFN(2+10,13-9,T) R= +5881 p = 1e-1322 FAIL !!!!!!!!
    > [Low4/32]DC6-9x1Bytes-1 R=+1284826 p = 0 FAIL !!!!!!!!
    > [Low4/32]Gap-16:A R=+412185 p = 0 FAIL !!!!!!!!
    > [Low4/32]Gap-16:B R=+2520495 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(0,14-1) R=+631088 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(1,14-2) R=+12449 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(4,14-4) R=+705389 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(5,14-5) R=+14266 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(8,14-7) R=+743698 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(9,14-8) R=+14419 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(12,14-10) R=+535960 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:(13,14-11) R= +8504 p = 3e-3707 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:all R=+999316 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:all2 R=+451461539040 p = 0 FAIL !!!!!!!!
    > [Low4/32]FPF-14+6/16:cross R=+5271881 p = 0 FAIL !!!!!!!!
    > [Low4/32]BRank(12):128(4) R= +3718 p~= 5e-1978 FAIL !!!!!!!!
    > [Low4/32]BRank(12):256(2) R= +5148 p~= 1e-1550 FAIL !!!!!!!!
    > [Low4/32]BRank(12):384(1) R= +5018 p~= 1e-1511 FAIL !!!!!!!!
    > [Low4/32]BRank(12):512(2) R= +8862 p~= 8e-2669 FAIL !!!!!!!!
    > [Low4/32]BRank(12):768(1) R= +8376 p~= 1e-2522 FAIL !!!!!!!!
    > ...and 60 test result(s) without anomalies
    > Traceback (most recent call last):
    > File "Collatzgenerator01.py", line 50, in <module>
    > print(binary)
    > BrokenPipeError: [Errno 32] Broken pipe
    > Pytanie, czy program przetestował poprawnie, to co miał przetestować? Mam
    wątpliwości.

    Jeśli Twój program wyświetla binarne dane, to zwyczajnie nie przechodzi testów, bo ma
    za słabą losowość. Jeśli wyświetla dane tekstowe, czyli binarne znaki ASCII '0' i
    '1',
    czyli binarnie 00110000 i 00110001, to nawet jak ma dobrą losowość, nie przejdzie
    testu, ponieważ tylko jeden bit się zmienia losowo, reszta jest ciągle taka sama.
    Może zapisz do pliku to co wyświetla Twój program i zobacz w edytorze hexadecymalnym
    jakie tam są naprawdę dane - binarne czy tekstowe, czy nie ma znaków nowej linii,
    itd.

    Pozdrawiam


  • 35. Data: 2021-08-22 02:32:24
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com>

    Zrobiłem hexdump pierwszych bitów:

    python3 Mojgenerator01.py | hexdump -n4000 | head

    0000000 3031 3131 3131 3130 3131 3031 3131 3130
    0000010 3131 3030 3030 3131 3030 3131 3131 3030
    0000020 3030 3130 3031 3131 3030 3030 3131 3130
    0000030 3030 3130 3030 3030 3131 3131 3131 3131
    0000040 3031 3130 3131 3031 3031 3131 3030 3030
    0000050 3031 3030 3030 3031 3130 3130 3030 3131
    0000060 3131 3131 3131 3031 3130 3031 3131 3131
    0000070 3030 3130 3130 3030 3030 0a31 3131 3130
    0000080 3131 3031 3030 3131 3131 3130 3031 3131
    0000090 3030 3131 3030 3030 3030 3031 3030 3131

    Traceback (most recent call last):
    File "Collatzgenerator01.py", line 50, in <module>
    print(binary)
    BrokenPipeError: [Errno 32] Broken pipe

    I nie wygląda to dobrze. Po pierwsze nie mogę zrobić hexdumpu 4000 bajtów. Czy ta
    komenda ma jakieś ograniczenie, czy program mi się wykrzacza? Po drugie, tak na oko,
    to nie są losowe bity. Nie wiem o co chodzi. Czyżbym się walnął w kodzie albo napisał
    aż tak beznadziejny generator?


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

    On Saturday, August 21, 2021 at 11:37:18 PM UTC+2, o...@g...com wrote:
    > PS Program w konsoli działa normalnie, wypisuje liczby binarnie:
    >
    > 1001000001111110100101001011111000011110011000110111
    0000110101100001110110000100111010001001101001010101
    000001110001011010011010
    > 1100001001000110001101110100010010110010011000101000
    1101110111011010001010101110100010101010010011011111
    000111001101101001100
    > 1110000000100000011011001100010010101100000010101111
    1010111000111011010101011010100111000001100110011010
    111000110011110110101000
    > 1110111110101001110100000000101101010111100010110011
    0100100001100000011001001010001001010101111010100100
    11101010100110101010000

    Nie wiem co naprawdę wypisuje Twój program na konsolę, ale to co wkleiłeś wygląda jak
    dane tekstowe w dodatku oddzielone znakiem (lub nawet dwoma znakami!) nowej linii.
    Upewnij się w edytorze hexadecymalnym.

    Pozdrawiam


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

    > Jeśli Twój program wyświetla binarne dane, to zwyczajnie nie przechodzi testów, bo
    ma
    > za słabą losowość. Jeśli wyświetla dane tekstowe, czyli binarne znaki ASCII '0' i
    '1',
    > czyli binarnie 00110000 i 00110001, to nawet jak ma dobrą losowość, nie przejdzie
    > testu, ponieważ tylko jeden bit się zmienia losowo, reszta jest ciągle taka sama.
    > Może zapisz do pliku to co wyświetla Twój program i zobacz w edytorze
    hexadecymalnym
    > jakie tam są naprawdę dane - binarne czy tekstowe, czy nie ma znaków nowej linii,
    itd.

    Generuję liczbę w Pythonie:

    liczba = 83866140218348733068398498750863724151

    I konwertuję ją na liczbę binarną za pomocą:

    binary = bin(liczba)[2:]

    Otrzymuję:

    1111110001100000000111111101001010001111111111110100
    0010101111010000111110011101000100110010101111101101
    0110110100111001110111

    Ucinam pierwsze dwa znaki, bo inaczej miałbym dopisek:

    0b11111100011000000001111111010010100011111111111101
    0000101011110100001111100111010001001100101011111011
    010110110100111001110111

    Może jednak wyświetla znaki tekstowe? Może każda "1" i każde "0" jest czytanie jako
    ASCII.


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

    On Sunday, August 22, 2021 at 2:32:25 AM UTC+2, o...@g...com wrote:
    > Zrobiłem hexdump pierwszych bitów:
    >
    > python3 Mojgenerator01.py | hexdump -n4000 | head
    >
    > 0000000 3031 3131 3131 3130 3131 3031 3131 3130
    > 0000010 3131 3030 3030 3131 3030 3131 3131 3030
    > 0000020 3030 3130 3031 3131 3030 3030 3131 3130
    > 0000030 3030 3130 3030 3030 3131 3131 3131 3131
    > 0000040 3031 3130 3131 3031 3031 3131 3030 3030
    > 0000050 3031 3030 3030 3031 3130 3130 3030 3131
    > 0000060 3131 3131 3131 3031 3130 3031 3131 3131
    > 0000070 3030 3130 3130 3030 3030 0a31 3131 3130
    > 0000080 3131 3031 3030 3131 3131 3130 3031 3131
    > 0000090 3030 3131 3030 3030 3030 3031 3030 3131
    > Traceback (most recent call last):
    > File "Collatzgenerator01.py", line 50, in <module>
    > print(binary)
    > BrokenPipeError: [Errno 32] Broken pipe
    > I nie wygląda to dobrze. Po pierwsze nie mogę zrobić hexdumpu 4000 bajtów. Czy ta
    komenda ma jakieś ograniczenie, czy program mi się wykrzacza? Po drugie, tak na oko,
    to nie są losowe bity. Nie wiem o co chodzi. Czyżbym się walnął w kodzie albo napisał
    aż tak beznadziejny generator?

    Wygląda bardzo dobrze, ale nie jak dane binarne, ale jak dane tekstowe, czyli
    potrzebujesz konwertera. U mnie wygląda podobnie:

    ./SimpPRNG 1 300 | xxd
    00000000: 3131 3030 3031 3031 3131 3030 3031 3131 1100010111000111
    00000010: 3131 3030 3030 3031 3131 3130 3130 3131 1100000111101011
    00000020: 3131 3030 3130 3031 3031 3130 3130 3030 1100100101101000
    00000030: 3131 3130 3030 3131 3131 3030 3131 3131 1110001111001111
    00000040: 3030 3030 3030 3030 3131 3131 3130 3031 0000000011111001
    00000050: 3030 3031 3031 3130 3131 3131 3131 3130 0001011011111110
    00000060: 3030 3030 3131 3131 3131 3130 3130 3031 0000111111101001
    00000070: 3030 3131 3030 3030 3031 3130 3131 3030 0011000001101100
    00000080: 3131 3030 3130 3131 3130 3130 3030 3130 1100101110100010
    00000090: 3031 3030 3131 3031 3131 3031 3131 3131 0100110111011111
    000000a0: 3030 3130 3130 3131 3130 3131 3031 3131 0010101110110111
    000000b0: 3031 3030 3131 3031 3130 3031 3130 3030 0100110110011000
    000000c0: 3130 3031 3131 3130 3030 3130 3130 3131 1001111000101011
    000000d0: 3030 3030 3031 3030 3030 3031 3131 3031 0000010000011101
    000000e0: 3031 3130 3130 3031 3131 3131 3130 3131 0110100111111011
    000000f0: 3131 3131 3030 3030 3031 3031 3130 3031 1111000001011001
    00000100: 3031 3131 3131 3130 3030 3130 3130 3130 0111111000101010
    00000110: 3031 3031 3030 3030 3030 3031 3031 3131 0101000000010111
    00000120: 3131 3130 3030 3031 3130 3031 111000011001

    Tylko u CIebie jest znak '0a31' na którym zapewne wywala się konwerter.
    Zobacz skąd jest to 0a, wywal i uruchom przez konwerter.

    Pozdrawiam


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

    On Sunday, August 22, 2021 at 2:37:03 AM UTC+2, o...@g...com wrote:
    > > Jeśli Twój program wyświetla binarne dane, to zwyczajnie nie przechodzi testów,
    bo ma
    > > za słabą losowość. Jeśli wyświetla dane tekstowe, czyli binarne znaki ASCII '0' i
    '1',
    > > czyli binarnie 00110000 i 00110001, to nawet jak ma dobrą losowość, nie przejdzie

    > > testu, ponieważ tylko jeden bit się zmienia losowo, reszta jest ciągle taka sama.

    > > Może zapisz do pliku to co wyświetla Twój program i zobacz w edytorze
    hexadecymalnym
    > > jakie tam są naprawdę dane - binarne czy tekstowe, czy nie ma znaków nowej linii,
    itd.
    > Generuję liczbę w Pythonie:
    >
    > liczba = 83866140218348733068398498750863724151
    >
    > I konwertuję ją na liczbę binarną za pomocą:
    >
    > binary = bin(liczba)[2:]
    >
    > Otrzymuję:
    >
    > 1111110001100000000111111101001010001111111111110100
    0010101111010000111110011101000100110010101111101101
    0110110100111001110111
    >
    > Ucinam pierwsze dwa znaki, bo inaczej miałbym dopisek:
    >
    > 0b11111100011000000001111111010010100011111111111101
    0000101011110100001111100111010001001100101011111011
    010110110100111001110111
    >
    > Może jednak wyświetla znaki tekstowe? Może każda "1" i każde "0" jest czytanie jako
    ASCII.

    Po tym co wyświetlił hexeditor na pewno to są znaki ascii.


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

    On Saturday, August 21, 2021 at 11:37:18 PM UTC+2, o...@g...com wrote:
    > PS Program w konsoli działa normalnie, wypisuje liczby binarnie:
    >
    > 1001000001111110100101001011111000011110011000110111
    0000110101100001110110000100111010001001101001010101
    000001110001011010011010
    > 1100001001000110001101110100010010110010011000101000
    1101110111011010001010101110100010101010010011011111
    000111001101101001100
    > 1110000000100000011011001100010010101100000010101111
    1010111000111011010101011010100111000001100110011010
    111000110011110110101000
    > 1110111110101001110100000000101101010111100010110011
    0100100001100000011001001010001001010101111010100100
    11101010100110101010000

    I jeszcze jedno, wszystkie te liczby zaczynają się od jedynki i nie są równej
    długości, zobacz co usuwa zera wiodące - w teście muszą być.

    Pozdrawiam

strony : 1 ... 3 . [ 4 ] . 5 ... 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: