Jak działa program generatora liczb losowych. Co to jest generator liczb losowych

15.03.2019

Należy zauważyć, że idealnie jest to krzywa gęstości dystrybucji losowe liczby wyglądałby tak jak na rys. 22.3. Oznacza to, że w idealnym przypadku taka sama liczba punktów mieści się w każdym przedziale: N ja = N/k , gdzie Nłączna liczba punktów, k liczba interwałów, ja= 1, ½, k .

Ryż. 22.3. Wykres częstości wypadania liczb losowych,
generowany teoretycznie przez idealny generator

Należy pamiętać, że generowanie dowolnej liczby losowej składa się z dwóch etapów:

  • generowanie znormalizowanej liczby losowej (to znaczy równomiernie rozłożonej od 0 do 1);
  • transformacja znormalizowanych liczb losowych r ja na liczby losowe x ja, które są dystrybuowane zgodnie z (arbitralnym) prawem dystrybucji wymaganym przez użytkownika lub w wymaganym interwale.

Generatory liczb losowych według metody otrzymywania liczb dzielą się na:

  • fizyczny;
  • tabelaryczny;
  • algorytmiczny.

Fizyczne RNG

Przykładami fizycznych RNG są: moneta („orzeł” 1, „reszka” 0); kostka do gry; bęben ze strzałą podzielony na sektory z numerami; sprzętowy generator szumów (GS), który jest używany jako hałaśliwe urządzenie termiczne, na przykład tranzystor (ryc. 22.422.5).

Ryż. 22.4. Schemat sprzętowej metody generowania liczb losowych
Ryż. 22,5. Schemat uzyskiwania liczb losowych metodą sprzętową
Zadanie „Generowanie liczb losowych za pomocą monety”

Wygeneruj losową 3-cyfrową liczbę równomiernie rozłożoną między 0 a 1 za pomocą monety. Dokładność do trzech miejsc po przecinku.

Pierwszy sposób rozwiązania problemu
Rzuć monetą 9 razy, a jeśli wypadnie reszka, zapisz „0”, jeśli orzeł, to „1”. Powiedzmy więc, że w wyniku eksperymentu otrzymaliśmy ciąg losowy 100110100.

Narysuj przedział od 0 do 1. Odczytując cyfry kolejno od lewej do prawej, podziel przedział na pół i za każdym razem wybierz jedną z części następnego przedziału (jeśli wypadło 0, to w lewo, jeśli wypadło 1, to prawidłowy). W ten sposób możesz dotrzeć do dowolnego punktu w przedziale, dowolnie dokładnie.

Więc, 1 : przedział jest podzielony na pół przez i , wybrana jest prawa połowa, przedział się zawęża: . Następny numer 0 : przedział jest podzielony na pół przez i , wybrana jest lewa połowa, przedział się zawęża: . Następny numer 0 : przedział jest podzielony na pół przez i , wybrana jest lewa połowa, przedział się zawęża: . Następny numer 1 : przedział jest podzielony na pół przez i , wybrana jest prawa połowa, przedział się zawęża: .

Zgodnie z warunkiem dokładności problemu, rozwiązanie zostaje znalezione: jest to dowolna liczba z przedziału , na przykład 0,625.

W zasadzie, jeśli podchodzimy ściśle, to podział przedziałów musi być kontynuowany, aż lewa i prawa granica znalezionego przedziału nie będą DOPASOWANE do siebie z dokładnością do trzeciego miejsca po przecinku. Oznacza to, że pod względem dokładności wygenerowana liczba nie będzie już odróżnialna od żadnej liczby z przedziału, w którym się znajduje.

Drugi sposób rozwiązania problemu
Podzielmy wynikową sekwencję binarną 100110100 na triady: 100, 110, 100. Po przetłumaczeniu tych liczby binarne w ułamkach dziesiętnych otrzymujemy: 4, 6, 4. Podstawiając „0.” na początku otrzymujemy: 0,464. Tą metodą można uzyskać tylko liczby od 0,000 do 0,777 (ponieważ maksimum, które można „wycisnąć” z trzech cyfr binarnych, to 111 2 = 7 8), czyli w rzeczywistości liczby te są reprezentowane w systemie liczb ósemkowych. Do przetłumaczenia ósemkowy liczby w dziesiętny prezentacja jest wykonywalna:
0,464 8 = 4 8 1 + 6 8 2 + 4 8 3 = 0,6015625 10 = 0,602 10.
Tak więc pożądana liczba to: 0,602.

Tabelaryczny RNG

Tabelaryczne RNG jako źródło liczb losowych wykorzystują specjalnie zestawione tabele zawierające zweryfikowane nieskorelowane, czyli liczby, które w żaden sposób od siebie nie zależą. w tabeli. 22.1 pokazuje mały fragment takiej tabeli. Chodząc po stole od lewej do prawej, od góry do dołu, możesz uzyskać losowe liczby równomiernie rozłożone od 0 do 1 z żądaną liczbą miejsc po przecinku (w naszym przykładzie używamy trzech miejsc po przecinku dla każdej liczby). Ponieważ liczby w tabeli nie zależą od siebie, tabelę można ominąć różne sposoby, na przykład od góry do dołu lub od prawej do lewej, lub, powiedzmy, możesz wybrać liczby, które znajdują się na parzystych pozycjach.

Tabela 22.1.
Losowe liczby. Równomiernie
rozłożone od 0 do 1 liczb losowych
losowe liczby równomiernie
0 do 1 liczb losowych
9 2 9 2 0 4 2 6 0.929
9 5 7 3 4 9 0 3 0.204
5 9 1 6 6 5 7 6 0.269
… …

Zaletą tej metody jest to, że daje prawdziwie losowe liczby, ponieważ tabela zawiera zweryfikowane liczby nieskorelowane. Wady metody: do zapisania dużej liczby cyfr potrzeba dużo pamięci; duże trudności w generowaniu i sprawdzaniu takich tablic, powtórzenia przy korzystaniu z tablicy nie gwarantują już losowości ciągu numerycznego, a co za tym idzie wiarygodności wyniku.

Znajduje się tam tabela zawierająca 500 absolutnie losowych zweryfikowanych liczb (zaczerpnięta z książki I. G. Venetsky'ego, V. I. Venetskaya „Podstawowe pojęcia matematyczne i statystyczne oraz wzory w analizie ekonomicznej”).

Algorytmiczne RNG

Liczby generowane za pomocą tych RNG są zawsze pseudolosowe (lub quasi-losowe), to znaczy każda kolejna wygenerowana liczba zależy od poprzedniej:

r ja + 1 = f(r ja) .

Sekwencje złożone z takich liczb tworzą pętle, to znaczy koniecznie istnieje cykl, który powtarza się nieskończoną liczbę razy. Powtarzające się cykle nazywane są okresami.

Zaletą danych RNG jest szybkość; generatory praktycznie nie wymagają zasobów pamięci, są kompaktowe. Wady: liczb nie można w pełni nazwać losowymi, ponieważ istnieje między nimi zależność, a także obecność okresów w sekwencji liczb quasi-losowych.

Rozważ kilka algorytmicznych metod uzyskiwania RNG:

Metoda średniokwadratowa

Jest jakaś czterocyfrowa liczba R 0 . Ta liczba jest podnoszona do kwadratu i wprowadzana R 1. Pochodzące z R 1 w środku (cztery środkowe cyfry) pobierana jest nowa liczba losowa i zapisywana R 0 . Następnie procedura jest powtarzana (patrz ryc. 22.6). Zauważ, że w rzeczywistości jako liczbę losową należy wziąć nie ghij, a 0.ghij z zerem i kropką dziesiętną dodaną po lewej stronie. Fakt ten znajduje odzwierciedlenie na ryc. 22.6 i na kolejnych podobnych rysunkach.

Ryż. 22.6. Schemat metody środkowych kwadratów

Wady metody: 1) jeśli w pewnej iteracji liczba R 0 staje się zerem, wówczas generator ulega degeneracji, dlatego ważny jest właściwy wybór wartości początkowej R 0; 2) generator powtórzy sekwencję M n kroki (w najlepszym razie), gdzie n długość słowa R 0 , M podstawa systemu liczbowego.

Dla przykładu na ryc. 22,6 : jeśli liczba R 0 będzie reprezentowane w systemie liczb binarnych, następnie sekwencja liczb pseudolosowych powtórzy się po 2 4 = 16 krokach. Zwróć uwagę, że powtórzenie sekwencji może nastąpić nawet wcześniej, jeśli początkowa liczba zostanie wybrana bezskutecznie.

Opisana powyżej metoda została zaproponowana przez Johna von Neumanna i pochodzi z 1946 roku. Ponieważ metoda ta okazała się zawodna, szybko z niej zrezygnowano.

Metoda produktów medianowych

Numer R 0 pomnożone przez R 1, od wyniku R 2 środek jest usunięty R 2 * (to kolejna liczba losowa) i pomnożona przez R 1. Zgodnie z tym schematem obliczane są wszystkie kolejne liczby losowe (patrz ryc. 22.7).

Ryż. 22.7. Schemat metody produktów medianowych

Metoda mieszania

Metoda tasowania wykorzystuje operacje do obracania zawartości komórki w lewo iw prawo. Idea metody jest następująca. Niech komórka zapisze numer początkowy R 0 . Cyklicznie przesuwając zawartość komórki w lewo o 1/4 długości komórki otrzymujemy nową liczbę R 0*. Podobnie poprzez cykliczne przesuwanie zawartości komórki R 0 w prawo o 1/4 długości komórki, otrzymujemy drugą liczbę R 0**. Suma liczb R 0 * i R 0** daje nową liczbę losową R 1. Dalej R 1 zostaje wpisany R 0 , a cała sekwencja operacji jest powtarzana (patrz ryc. 22.8).


Ryż. 22,8. Schemat metody mieszania

Zauważ, że liczba wynikająca z sumowania R 0 * i R 0 ** , może nie mieścić się całkowicie w komórce R 1. W takim przypadku dodatkowe cyfry należy odrzucić z otrzymanego numeru. Wyjaśnijmy to dla rys. 22.8, gdzie wszystkie komórki są reprezentowane przez osiem cyfr binarnych. Pozwalać R 0 * = 10010001 2 = 145 10 , R 0 ** = 10100001 2 = 161 10 , następnie R 0 * + R 0 ** = 100110010 2 = 306 10 . Jak widać liczba 306 zajmuje 9 cyfr (w systemie dwójkowym), a komórka R 1 (a także R 0 ) może pomieścić maksymalnie 8 bitów. Dlatego przed wprowadzeniem wartości w R 1 należy usunąć jeden „dodatkowy”, skrajny lewy bit z liczby 306, w wyniku czego R 1 pójdzie już nie 306, ale 00110010 2 = 50 10 . Należy również zauważyć, że w językach takich jak Pascal „obcinanie” dodatkowych bitów w przypadku przepełnienia komórki odbywa się automatycznie zgodnie z podanym typem zmiennej.

Liniowa metoda kongruentna

Liniowa metoda kongruencji jest jedną z najprostszych i obecnie najczęściej stosowanych procedur symulujących liczby losowe. Ta metoda wykorzystuje mod( x, y) , która zwraca resztę z dzielenia pierwszego argumentu przez drugi. Każda kolejna liczba losowa jest obliczana na podstawie poprzedniej liczby losowej według następującego wzoru:

r ja+ 1 = mod( k · r ja + b, M) .

Nazywa się ciąg liczb losowych uzyskanych za pomocą tego wzoru liniowy ciąg kongruentny. Wielu autorów odnosi się do liniowej kongruentnej sekwencji jako b = 0 multiplikatywna metoda kongruentna, i kiedy b ≠ 0 — mieszana metoda kongruentna.

W przypadku generatora wysokiej jakości wymagane jest wybranie odpowiednich współczynników. Konieczne jest, aby numer M był dość duży, ponieważ okres nie może mieć więcej M elementy. Z drugiej strony dzielenie stosowane w tej metodzie jest raczej powolną operacją, więc dla komputera binarnego logicznym wyborem byłoby M = 2 N, ponieważ w tym przypadku znalezienie reszty z dzielenia jest zredukowane wewnątrz komputera do binarnej operacji logicznej „AND”. Powszechne jest również wybieranie największej liczby pierwszej M, mniej niż 2 N: w literaturze specjalistycznej udowodniono, że w tym przypadku najmniej znaczące cyfry wynikowej liczby losowej r ja+ 1 zachowują się tak samo losowo jak starsze, co ma pozytywny wpływ na całą sekwencję liczb losowych jako całość. Przykładem jest jeden z Liczby Mersenne'a, równe 2 31 1 , a zatem, M= 2 31 1 .

Jednym z wymagań dla liniowych ciągów kongruentnych jest jak najdłuższy okres. Długość okresu zależy od wartości M , k oraz b. Przedstawione poniżej twierdzenie pozwala określić, czy możliwe jest osiągnięcie okresu o maksymalnej długości dla określonych wartości M , k oraz b .

Twierdzenie. Ciąg kongruentny liniowy określony przez liczby M , k , b oraz r 0 ma okres długości M wtedy i tylko wtedy gdy:

  • liczby b oraz M względnie pierwsze;
  • k 1 x p dla każdego prostego p, który jest dzielnikiem M ;
  • k 1 jest wielokrotnością 4, jeśli M wielokrotność 4.

Na koniec zakończmy kilkoma przykładami wykorzystania liniowej metody kongruencji do generowania liczb losowych.

Stwierdzono, że seria liczb pseudolosowych wygenerowanych na podstawie danych z przykładu 1 będzie się powtarzać co roku M/4 liczby. Numer q jest ustalany arbitralnie przed rozpoczęciem obliczeń, jednak należy mieć na uwadze, że szereg sprawia wrażenie w dużej mierze przypadkowego k(i dlatego q). Wynik można nieco poprawić, jeśli b dziwne i k= 1 + 4 q w takim przypadku seria będzie powtarzana co M liczby. Po długich poszukiwaniach k naukowcy ustalili wartości 69069 i 71365.

Generator liczb losowych wykorzystujący dane z przykładu 2 wygeneruje losowe liczby jednorazowe o okresie 7 milionów.

Multiplikatywna metoda generowania liczb pseudolosowych została zaproponowana przez DH Lehmera w 1949 roku.

Kontrola jakości generatora

Jakość całego systemu i dokładność wyników zależy od jakości RNG. Dlatego losowa sekwencja generowana przez RNG musi spełniać szereg kryteriów.

Przeprowadzane kontrole są dwojakiego rodzaju:

  • kontrole równomiernego rozmieszczenia;
  • testowanie niezależności statystycznej.

Sprawdza równomierną dystrybucję

1) RNG powinno dawać zbliżone do następujących wartości parametrów statystycznych charakterystycznych dla jednolitego prawa losowego:

2) Test częstotliwości

Test częstotliwości pozwala dowiedzieć się, ile liczb mieści się w przedziale (m r – σ r ; m r + σ r) , tj. (0,5 0,2887; 0,5 + 0,2887) lub ewentualnie (0,2113; 0,7887) . Ponieważ 0,7887 0,2113 = 0,5774 wnioskujemy, że w dobrym RNG około 57,7% wszystkich losowanych liczb powinno mieścić się w tym przedziale (patrz rys. 22.9).

Ryż. 22,9. Wykres częstotliwości idealnego RNG
w przypadku sprawdzenia go do testu częstotliwości

Należy również wziąć pod uwagę, że liczba liczb w przedziale (0; 0,5) powinna być w przybliżeniu równa liczbie liczb w przedziale (0,5; 1) .

3) Test chi-kwadrat

Test chi-kwadrat (χ 2 -test) jest jednym z najbardziej znanych testów statystycznych; jest to główna metoda stosowana w połączeniu z innymi kryteriami. Test chi-kwadrat został zaproponowany w 1900 roku przez Karla Pearsona. Jego niezwykła praca jest uważana za podstawę współczesnej statystyki matematycznej.

W naszym przypadku test chi-kwadrat pozwoli nam dowiedzieć się, ile tworzymy prawdziwy RNG jest zbliżony do odniesienia RNG, tj. czy spełnia wymóg jednolitej dystrybucji, czy nie.

wykres częstotliwości odniesienie RNG pokazano na ryc. 22.10. Ponieważ prawo dystrybucji odniesienia RNG jest jednorodne, (teoretyczne) prawdopodobieństwo p ja wbijanie numerów ja-ty interwał (suma tych interwałów k) jest równe p ja = 1/k . I tak w każdym k odstępy spadną gładki na p ja · N liczby ( N — całkowity wygenerowane numery).

Ryż. 22.10. Wykres częstotliwości referencyjnego RNG

Prawdziwy RNG wygeneruje liczby rozłożone (i niekoniecznie równomiernie!) k interwały, a każdy interwał będzie zawierał n ja liczby (łącznie n 1 + n 2 + ½ + n k = N ). Jak możemy określić, jak dobry i zbliżony jest testowany RNG do referencyjnego? Logiczne jest rozważenie kwadratów różnic między otrzymaną liczbą liczb n ja i „odniesienie” p ja · N . Dodajmy je do siebie i otrzymamy:

χ 2 dow. =( n 1 p 1 · N) 2 + (n 2 p 2 · N) 2 + + ( n k – p k · N) 2 .

Z wzoru tego wynika, że ​​im mniejsza różnica w każdym z wyrazów (a więc tym mniejsza mniejsza wartośćχ 2 dow. ), tym silniejsze jest to, że prawo rozkładu liczb losowych generowanych przez rzeczywisty RNG jest jednorodne.

W poprzednim wyrażeniu każdemu z terminów przypisano taką samą wagę (równą 1), co w rzeczywistości może nie być prawdziwe; dlatego dla statystyki chi-kwadrat konieczne jest znormalizowanie każdego z nich ja wyraz, dzieląc go przez p ja · N :

Na koniec napiszmy wynikowe wyrażenie bardziej zwięźle i uprośćmy je:

Otrzymaliśmy wartość testu chi-kwadrat dla eksperymentalny dane.

w tabeli. podano 22,2 teoretyczny wartości chi-kwadrat (teor. χ 2), gdzie ν = N 1 to liczba stopni swobody, p to określony przez użytkownika poziom ufności, który określa, w jakim stopniu RNG powinien spełniać wymagania jednolitej dystrybucji, lub p — jest prawdopodobieństwem, że wartość eksperymentalna χ 2 exp. będzie mniejsza niż tabelaryczna (teoretyczna) teoria χ 2. lub równy temu.

Tabela 22.2.
Kilka punktów procentowych rozkładu χ 2
p = 1% p = 5% p = 25% p = 50% p = 75% p = 95% p = 99%
ν = 1 0.00016 0.00393 0.1015 0.4549 1.323 3.841 6.635
ν = 2 0.02010 0.1026 0.5754 1.386 2.773 5.991 9.210
ν = 3 0.1148 0.3518 1.213 2.366 4.108 7.815 11.34
ν = 4 0.2971 0.7107 1.923 3.357 5.385 9.488 13.28
ν = 5 0.5543 1.1455 2.675 4.351 6.626 11.07 15.09
ν = 6 0.8721 1.635 3.455 5.348 7.841 12.59 16.81
ν = 7 1.239 2.167 4.255 6.346 9.037 14.07 18.48
ν = 8 1.646 2.733 5.071 7.344 10.22 15.51 20.09
ν = 9 2.088 3.325 5.899 8.343 11.39 16.92 21.67
ν = 10 2.558 3.940 6.737 9.342 12.55 18.31 23.21
ν = 11 3.053 4.575 7.584 10.34 13.70 19.68 24.72
ν = 12 3.571 5.226 8.438 11.34 14.85 21.03 26.22
ν = 15 5.229 7.261 11.04 14.34 18.25 25.00 30.58
ν = 20 8.260 10.85 15.45 19.34 23.83 31.41 37.57
ν = 30 14.95 18.49 24.48 29.34 34.80 43.77 50.89
ν = 50 29.71 34.76 42.94 49.33 56.33 67.50 76.15
ν > 30 ν + kwadrat(2 ν ) · x p+ 2/3 x 2 p 2/3+ O(1/kwadrat( ν ))
x p = 2.33 1,64 0,674 0.00 0.674 1.64 2.33

Rozważ akceptowalne p od 10% do 90%.

Jeśli χ 2 exp. znacznie więcej niż teoria χ2. (to znaczy p jest duży), a następnie generator nie satysfakcjonuje wymóg równomiernego rozkładu, ponieważ obserwowane wartości n ja zbyt daleko od teorii p ja · N i nie może być traktowany jako przypadkowy. Innymi słowy, ustalono tak duży przedział ufności, że ograniczenia dotyczące liczb stają się bardzo luźne, wymagania dotyczące liczb są słabe. W takim przypadku zostanie zaobserwowany bardzo duży błąd bezwzględny.

Nawet D. Knuth w swojej książce „The Art of Programming” zauważył, że mając χ 2 exp. małe też w ogóle nie jest dobre, choć na pierwszy rzut oka wydaje się niezwykłe z punktu widzenia jednorodności. Rzeczywiście, weź szereg liczb 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, są one idealne pod względem jednorodności, a χ 2 exp. będą praktycznie zerowe, ale raczej nie rozpoznasz ich jako przypadkowych.

Jeśli χ 2 exp. znacznie mniej niż teoria χ 2. (to znaczy p mały), a następnie generator nie satysfakcjonuje wymóg losowego rozkładu równomiernego, ponieważ obserwowane wartości n ja zbyt blisko teoretycznego p ja · N i nie może być traktowany jako przypadkowy.

Ale jeśli χ 2 exp. leży w pewnym przedziale, między dwiema wartościami teorii χ 2. które odpowiadają np. p= 25% i p= 50%, to możemy przyjąć, że wartości liczb losowych generowanych przez czujnik są całkowicie losowe.

Ponadto należy pamiętać, że wszystkie wartości p ja · N musi być wystarczająco duża, na przykład większa niż 5 (znaleziona empirycznie). Dopiero wtedy (przy odpowiednio dużej próbie statystycznej) można uznać warunki eksperymentu za zadowalające.

Tak więc procedura weryfikacji jest następująca.

Testy niezależności statystycznej

1) Sprawdzenie częstotliwości występowania cyfry w ciągu

Rozważ przykład. Liczba losowa 0,2463389991 składa się z cyfr 2463389991, a liczba 0,5467766618 składa się z cyfr 5467766618. Łącząc ciągi cyfr otrzymujemy: 24633899915467766618.

Oczywiste jest, że teoretyczne prawdopodobieństwo p ja opad ja cyfra (od 0 do 9) to 0,1.

2) Sprawdzanie wyglądu serii identycznych liczb

Oznacz przez n Ł liczba serii identycznych kolejnych cyfr o długości Ł. Wszystko trzeba sprawdzić Ł od 1 do m, gdzie m to liczba określona przez użytkownika: maksymalna liczba identycznych cyfr występujących w serii.

W przykładzie „24633899915467766618” znaleziono 2 szeregi o długości 2 (33 i 77), tj. n 2 = 2 i 2 serie długości 3 (999 i 666), tj. n 3 = 2 .

Prawdopodobieństwo serii o długości Ł jest równe: p Ł= 9 10 Ł (teoretyczny). Oznacza to, że prawdopodobieństwo wystąpienia serii o długości jednego znaku jest równe: p 1 = 0,9 (teoretycznie). Prawdopodobieństwo pojawienia się ciągu dwuznakowego wynosi: p 2 = 0,09 (teoretycznie). Prawdopodobieństwo pojawienia się ciągu trzech znaków wynosi: p 3 = 0,009 (teoretycznie).

Na przykład prawdopodobieństwo wystąpienia serii o długości jednego znaku jest równe p Ł= 0.9 , ponieważ może być tylko jeden znak na 10 i tylko 9 znaków (zero nie jest liczone). A prawdopodobieństwo, że dwa identyczne znaki „XX” spotkają się w rzędzie, wynosi 0,1 0,1 9, to znaczy prawdopodobieństwo 0,1, że znak „X” pojawi się na pierwszej pozycji, jest mnożone przez prawdopodobieństwo 0,1, że ten sam znak pojawi się na drugiej pozycji „X” i pomnożona przez liczbę takich kombinacji 9.

Częstotliwość występowania serii jest obliczana zgodnie ze wzorem „chi-kwadrat”, który wcześniej analizowaliśmy przy użyciu wartości p Ł .

Uwaga: Generator można sprawdzać wiele razy, ale kontrole nie są kompletne i nie gwarantują, że generator generuje liczby losowe. Na przykład generator, który generuje sekwencję 12345678912345, zostanie uznany za idealny podczas sprawdzania, co oczywiście nie jest do końca prawdą.

Podsumowując, zauważamy, że trzeci rozdział książki „Sztuka programowania” Donalda E. Knutha (tom 2) jest w całości poświęcony badaniu liczb losowych. Bada różne metody generowania liczb losowych, statystyczne kryteria losowości oraz transformację równomiernie rozłożonych liczb losowych na inne typy zmiennych losowych. Prezentacji tego materiału poświęcono ponad dwieście stron.

O makroskopowych procesach losowych przy użyciu takich prostych elementów jak kostka do gry, koło ruletki lub moneta, może być oparta generatory liczb losowych. Teoria chaosu i teoria niestabilnych układów dynamicznych mogą wyjaśnić obecność nieprzewidywalności danych, a nawet układy makroskopowe, całkowicie zdefiniowane przez równania Newtona, w praktyce często dają nieprzewidywalny wynik, ponieważ zależy on od mikroskopijnych szczegółów warunków początkowych.

Nawiasem mówiąc, na naszej stronie internetowej możesz wygenerować losową liczbę za pomocą internetowego generatora liczb losowych.

Co to jest generator liczb losowych i jak wykorzystuje losowe procesy fizyczne?

Szybkość uzyskiwania losowych liczb wystarczających dla zastosowanych problemów nie mogą zapewnić urządzenia oparte na makroskopowych procesach losowych. Źródło szumu, z którego wydobywane są przypadkowe bity, jest zatem podstawą nowoczesnego AGNG. Źródła hałasu są dwojakiego rodzaju: te, które mają naturę kwantową i te, które nie wykorzystują zjawisk kwantowych.

Trochę Zjawiska naturalne, takie jak radioaktywny rozpad atomów, są absolutnie losowe i w zasadzie nie dają się przewidzieć (eksperyment Davissona-Germera można uznać za jeden z pierwszych eksperymentów dowodzących probabilistycznego charakteru niektórych zjawisk), fakt ten jest konsekwencją prawa fizyki kwantowej. A z mechaniki statystycznej wynika, że ​​każdy układ w swoich parametrach ma przypadkowe fluktuacje jeśli temperatura nie jest równa zeru bezwzględnemu.

Zaawansowany generator liczb losowych.

Dla AGNG niektóre procesy mechaniki kwantowej są „złotym standardem”, ponieważ są całkowicie losowe. Używanie w generatory liczb losowych zjawiska obejmują:

  • Szum wystrzału to szum powodowany w obwodach elektrycznych przez dyskretność nośników. ładunek elektryczny termin ten odnosi się również do szumu powodowanego w przyrządach optycznych przez dyskretność nośnika światła.
  • Spontaniczne rozpraszanie parametryczne może być również stosowane w generatory liczb losowych.
  • Rozpad radioaktywny - ma losowość do każdego z poszczególnych zdarzeń rozpadu, dlatego jest używany jako źródło szumu. W rezultacie do odbiornika trafia różna liczba cząstek w różnych odstępach czasu (może to być licznik Geigera lub licznik scyntylacyjny).

Znacznie łatwiej jest wykrywać zjawiska niekwantowe, ale oparte na nich generatory liczb losowych, to będą silnie zależne od temperatury (na przykład ilość szumu termicznego będzie proporcjonalna do temperatury środowisko). Wśród procesów stosowanych w AGNG można zauważyć następujące procesy:

  • Szum termiczny w rezystorze, po wzmocnieniu, z którego uzyskuje się losowy generator napięcia. W szczególności generator liczb w komputerze Ferranti Mark 1 został oparty na tym zjawisku.
  • Hałas atmosferyczny, który jest mierzony przez odbiornik radiowy, można tu również przypisać odbieraniu cząstek przybywających z kosmosu na Ziemię, zarejestrowanych przez odbiornik, a ich liczba będzie losowa, w różnych odstępach czasu.
  • Różnica w prędkości zegara jest zjawiskiem polegającym na tym, że przebieg różnych zegarów absolutnie nie będzie się pokrywał.

W celu uzyskania z fizycznego losowego procesu sekwencja losowych bitów, istnieje kilka podejść do tego. Jedna z nich polega na tym, że odebrany sygnał do szumu jest wzmacniany, następnie filtrowany i podawany na wejście szybkiego komparatora napięć w celu uzyskania sygnału logicznego. Będzie losowy czas trwania stanów komparatora, co pozwala na tworzenie sekwencja liczb losowych mierząc te stany.

Drugie podejście polega na podaniu na wejście przetwornika analogowo-cyfrowego losowego sygnału (można wykorzystać zarówno specjalne urządzenia, jak i wejście audio komputera), który jest ciągiem losowych liczb, co spowoduje sygnał cyfrowy, a jednocześnie może być przetwarzany programowo.

Co to jest generator liczb losowych i jakie inne zjawiska wykorzystuje?

Korzystanie z fizycznego losowe procesygeneratory liczb losowych, umożliwiają uzyskanie dobrych liczb losowych, ale ich produkcja jest kosztowna i stosunkowo trudna (szczególnie dla tych AGNG, które są oparte na rozpadzie promieniotwórczym), ale istnieją inne, bardziej dostępne źródła losowości:

Proste generowanie liczb losowych.

Pracę cyfrowych kamer wideo, które wykorzystują fotografowanie zjawisk makroskopowych, należy przypisać najbardziej niezwykłym generatorom. Na przykład, do generowania liczb losowych, nagranie wideo zostało wykorzystane przez zespół z Silicon Graphics lampa lawowa ponieważ wosk losowo zmienia swój kształt w lampie. Wstążki z wentylatora w strumieniu powietrza lub bąbelki w akwarium można również wykorzystać jako temat do fotografii.

Każda osoba, niezależnie od stopnia hazardu i awanturnictwa, w taki czy inny sposób spotkała się z czymś takim jak loteria. I tylko nieliczni zadali sobie pytanie, w jaki sposób zachodzi losowy rozkład zwycięskich kombinacji liczb. Jak wypada jedna lub druga liczba? Co powoduje, że szala opada w stronę zwycięzcy? Rozważmy to szczegółowo.

Każdy z nas przynajmniej raz w życiu spotkał się z takim zjawiskiem jak loteria. Ale niewiele osób myślało lub wyobrażało sobie, jak dokładnie działa ten system, czym jest generator liczb loteryjnych i jaka jest jego zasada działania.

Koncepcja generatora liczb

Generator liczb losowych dla loterii to określone urządzenie lub dany program, który generuje liczby znajdujące się na wybranym przedziale w przypadkowej (a raczej pseudolosowej) kolejności. W przypadku pewnego rodzaju loterii, na przykład „Sportloto”, generowane są liczby z zakresu od 1 do 49.

Przydziel generator liczb dla sprzętu i oprogramowania loterii. W każdym języku programowania istnieje funkcja RAND(), to ona jest odpowiedzialna za wystawienie pseudo losowe liczby w podanym zakresie.

Dlaczego twierdzi się, że podane wyniki są pseudolosowe i że generator liczb lotto działa właśnie na tej zasadzie?

Funkcja RAND: pojęcie i sposób użycia

Funkcja RAND() to program lub na przykład urządzenie z algorytmem deterministycznym, które w tych samych danych warunkach będzie stale pokazywać te same wyniki. Ale aby warunki prawdziwej sekwencji losowej były spełnione, nie może być żadnej zależności od warunków początkowych lub parametrów. Dlatego, aby uniknąć takich przypadków, dodatkowo stosowana jest specjalna procedura RANDOMIZE, która usuwa przewidywalność warunków początkowych, czyniąc je losowymi.

Oprócz znanej nam już zasady generowania stosuje się inny rodzaj generatora loterii. Rozważmy to poniżej.

Generator liczb 6 z 45

Generator numerów loterii 6 z 45 - program, który służy do uzyskiwania Szczęśliwe liczby. Jednocześnie istnieje możliwość ustawienia dodatkowych parametrów w celu uzyskania lepszego wyniku.

Możesz określić kryteria wyboru, na przykład:

  • Liczba zwycięskich liczb, aby uzyskać wynik końcowy.
  • Określ zakres numerów, w jakim zostanie dokonany wybór.
  • Sortowanie liczb można ustawić zarówno w kolejności rosnącej, jak i malejącej.
  • Wybierz typ i metodę separacji.
  • Wyeliminuj duplikaty lub pozostaw zaznaczenie nieposortowane.
  • Skopiuj link do wyniku i umieść go na stronie w portale społecznościowe w celu opublikowania wyniku.

Generator liczb: instrukcje użytkowania

  • Domyślnie wyświetlanych jest pięć liczb. Zmieniając ustawienia, możesz uzyskać do 250 losowych zwycięskich kombinacji.
  • Ustawiamy zakres, domyślnie jest on określony od 0 do 36, ale można podać maksymalnie 9 999 999 999.
  • Wybieramy sortowanie niezbędne dla naszego rodzaju loterii: rosnąco, malejąco lub ułożenie liczb w przypadkowej kolejności.
  • Kolejnym krokiem jest określenie, w jaki sposób liczby będą oddzielone od siebie - przecinek, kropka, spacja, średnik.
  • Pozbywamy się przypadkowych powtórzeń, które powstały podczas procesu samplowania.

W ten sposób otrzymujemy jakościowo wyselekcjonowane liczby, które mogą być najszczęśliwszymi i najbardziej wygrywającymi.

Wielu uczestników loterii nie chce tracić czasu na wybieranie zwycięska kombinacja i wypełnić los na loterię.

Aby im pomóc, większość wyspecjalizowanych witryn loteryjnych oferuje bardzo wygodną funkcję „Automatycznego wybierania”. O tym, co to jest i jak działa, powiemy dzisiaj.

"Ustawić automatycznie"

Ta funkcja jest klasycznym generatorem liczb losowych, wymyślonym od czasu powstania pierwszych witryn loteryjnych i wirtualne kasyna. Ponad 70% kupujących wirtualne bilety Loterie zagraniczne wybierz tę całkowicie bezpłatną opcję.

Ponadto możesz automatycznie wybrać nie jedną zwycięską kombinację, ale kilka (do 50). Jest to bardzo wygodne dla graczy, którzy kupują duża liczba bilety na loterię o różnych stawkach.

Statystyki wygranych

Jeśli nadal masz wątpliwości, czy skorzystać z funkcji „Automatyczne wybieranie numeru”, czy też cierpisz z powodu samodzielnego wypełniania biletów, czytaj dalej. Recenzje loterii Euromillion dla ich zwycięzców jednoznacznie stwierdzają, że różnica w metodach wypełniania losu w żaden sposób nie wpływa na szanse uczestnika. Mówią nam o tym również statystyki loterii, według których, od Łączna gracze korzystający z tej opcji na stronach internetowych otrzymują wygraną w wysokości około 70%. Aby nie być gołosłownym, oto przykłady szczęśliwych zwycięzców w 2012 roku, którzy obstawiali zakłady za pomocą komputera.

W marcu 2012 roku para z USA wygrała ogromną kumulację w wysokości 218 milionów dolarów w nowojorskiej loterii. Nie rozwinęły się strategia loterii(przeczytaj sekcję Strategie gry), ale po prostu użył funkcji „Automatyczne wybieranie”.

Zwycięzcy rekordowy remis amerykański Narodowa loteria PowerBall, który równo podzielił 586 milionów dolarów, wypełnił swoje kupony za pomocą generatora liczb losowych.

Starsza pani, która nie chciała myśleć o zwycięskiej kombinacji, powierzyła wybór liczb komputerowi i wygrała 336 milionów dolarów.

Zalety generatora liczb losowych

Pierwszą niepodważalną zaletą korzystania z tej funkcji jest znaczna oszczędność czasu. Jednym kliknięciem myszy możesz postawić kilka zakładów jednocześnie na jedno losowanie dowolnej zagranicznej loterii.

Drugą zaletą jest ułatwienie umysłowego wysiłku gracza, aby stworzyć zwycięską kombinację. Jeśli nie jesteś fanatykiem numerologii i nie wierzysz w magię liczb, uwierz mi, lepsze niż komputer Nie możesz myśleć o kombinacjach liczb.

Trzecim faktem przemawiającym za „automatycznym zestawem” są absolutnie równe szanse na wygranie jackpota i innych duża nagroda Z bilety na loterię wypełnione ręcznie.

Liczby losowe to prosty element kryptografii, o którym mówi się najmniej, ale jest nie mniej ważny niż pozostałe. Prawie wszystkie komputerowe systemy bezpieczeństwa wykorzystujące kryptografię wymagają liczb losowych — jako kluczy, unikalnych numerów w protokołach itd. — a bezpieczeństwo takich systemów często zależy od losowości ich liczb losowych. Jeśli generator liczb losowych jest zawodny, cały system się psuje.

W zależności od tego, z kim rozmawiasz, generowanie liczb losowych wygląda na trywialne lub niemożliwe. Teoretycznie jest to niemożliwe. Jan von Neumann, ojciec Informatyka, powiedział: „Każdy, kto wierzy, że istnieją arytmetyczne metody uzyskiwania liczb losowych, z pewnością grzeszy”. Miał na myśli to, że nie można uzyskać niczego prawdziwie losowego z wyjścia tak deterministycznej bestii, jak komputer. To prawda, ale na szczęście możemy coś zrobić. To, czego potrzebujemy od generatora liczb losowych, to nie to, że liczby są naprawdę losowe, ale to, że nie można ich przewidzieć i odtworzyć. Jeśli spełnimy te dwa warunki, możemy osiągnąć bezpieczeństwo.

Z drugiej strony, jeśli naruszymy te dwa warunki, nie ma żadnego bezpieczeństwa. W 1994 roku w kasynie w Montrealu zainstalowano komputerowy generator liczb losowych dla loterii. Zauważył to jeden spostrzegawczy gracz, który spędzał dużo czasu w kasynie zwycięskie liczby były takie same każdego dnia. Z powodzeniem trafił trzy jackpoty z rzędu i otrzymał 600 000 $. (Po załamaniu rąk, zgrzytaniu zębami i zbadaniu wszystkiego kasyno wypłaciło wygraną.)

Istnieje kilka szerokich klas generatorów liczb losowych. Niektóre z nich są oparte procesy fizyczne, co można uznać za raczej przypadkowe. Agencja Bezpieczeństwa Narodowego lubi wykorzystywać szum elektryczny diod w swoich urządzeniach do generowania liczb losowych. Inne możliwości to licznik Geigera lub odbiorniki zakłóceń radiowych. Używa jednego systemu w Internecie aparat cyfrowy skierowane na kilka lamp stroboskopowych. Inne systemy wykorzystują turbulencje powietrza w napędach lub podczas nadejścia pakietów sieciowych.

Niektóre generatory liczb losowych śledzą losowe ruchy użytkownika. Program może poprosić użytkownika o wpisanie dużego ciągu dowolnych znaków na klawiaturze; może użyć sekwencji znaków, a nawet czasu między naciśnięciami klawiszy, aby wygenerować losowe liczby. Inny program może z łatwością wymagać od użytkownika przesuwania myszy w przód iw tył lub chrząknięcia do mikrofonu.

Niektóre generatory liczb losowych stosują te wprowadzone informacje bez modyfikacji. W innych służy jako ziarno (ziarno) dla matematycznych generatorów liczb losowych. Ta sztuczka działa najlepiej, jeśli system potrzebuje więcej liczb losowych niż dane wejściowe.

Bez względu na pochodzenie losowości, generator utworzy serię losowych bitów. Mogą być następnie używane jako klucze kryptograficzne i do wszystkiego innego, czego potrzebuje system.



Podobne artykuły