eGospodarka.pl
eGospodarka.pl poleca

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

    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

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: