-
Data: 2021-08-23 15:05:26
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 2:31:39 PM UTC+2, o...@g...com wrote:
> 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?
Jeśli nie ma błędów, to w tym przypadku nie można uzyskać innych wyników. Jeśli nie
pomijam 100 początkowych
wygenerowanych liczb, to mam takie same liczby jak Ty:
0
0
0
31
21
4
3
9
9
7
25
12
15
16
24
11
20
14
25
27
Jeśli pomijam to mam takie:
3
29
24
7
24
11
15
18
22
24
17
7
15
0
28
19
8
27
31
0
W wielu generatorach początkowe liczby uznawane są za kiepskie. Jeśli to jest ważne,
pomija
się wiele początkowych liczb. Ten generator jest tylko do minimalnego sprawdzenia,
ale jakoś
odruchowo pominąłem chociaż 100 początkowych liczb. Generalnie, pobieranie co N-tego
bitu to
najprostsza technika zwiększająca jakość generatora - ale spowalniająca generator.
Następne wpisy z tego wątku
- 23.08.21 15:21 o...@g...com
- 23.08.21 15:58 M.M.
- 23.08.21 21:11 o...@g...com
- 23.08.21 22:29 M.M.
- 23.08.21 22:47 o...@g...com
- 23.08.21 23:06 o...@g...com
- 23.08.21 23:46 M.M.
- 24.08.21 00:27 o...@g...com
- 24.08.21 00:54 o...@g...com
- 24.08.21 01:43 o...@g...com
- 24.08.21 16:20 o...@g...com
- 24.08.21 17:49 o...@g...com
- 25.08.21 04:15 o...@g...com
- 25.08.21 04:24 o...@g...com
- 27.08.21 00:52 o...@g...com
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-18 Poseł oszukany "na policjanta"
- 2024-12-18 znów chory psychicznie
- 2024-12-18 Katowice => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-18 Poznań => Dyspozytor Międzynarodowy <=
- 2024-12-18 Katowice => System Architect (background deweloperski w Java) <=
- 2024-12-18 Gdańsk => System Architect (Java background) <=
- 2024-12-18 Warszawa => Helpdesk Specialist <=
- 2024-12-18 Katowice => Kierownik Działu Zarządzania Platformą Wirtualizacji i
- 2024-12-18 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-18 Żerniki => Employer Branding Specialist <=
- 2024-12-18 Gliwice => Specjalista ds. public relations <=
- 2024-12-18 Kablówka z modułem CAM
- 2024-12-18 Warszawa => Spedytor międzynarodowy <=
- 2024-12-18 Wróblewo => Analityk finansowy <=
- 2024-12-18 Gdańsk => Specjalista ds. Sprzedaży <=