Generatory liczb losowych i pseudolosowych

Liczby losowe

Dawniej liczby losowe można było uzyskać, wykonując jakieś działanie, np. rzucając kością lub monetą. Z czasem powstały tablice liczb losowych, które były wykorzystywane przy badaniach statystycznych. Pierwsza taka tablica powstała w roku 1927. Jej autorem był L. H. Tippett a jej tytuł to Random Sampling Numbers.

Korzystanie z takich tablic w dzisiejszym świecie jest bardzo niepraktyczne. Na szczęście do dyspozycji mamy generatory liczb losowych, dzięki którym wiele dzień nauki mogło się rozwinąć, a my możemy korzystać z ich osiągnięć w codziennym życiu.

Generatory liczb losowych - zastosowanie

Generowanie liczb to proces, który generuje sekwencję liczb lub symboli, których nie można rozsądnie przewidzieć lepiej niż przypadkowo. Do generowania liczb używa się programu komputerowego lub układu elektronicznego.

Zastosowanie generatorów liczb losowych to przede wszystkim różnego rodzaju badania statystyczne i symulacyjne. W ekonomii generatory liczb pseudolosowych znajdują zastosowanie w symulacjach i modelowaniu matematycznym.
Innym bardzo częstym zastosowaniem tych liczb jest całkowanie numeryczne (metoda Monte Carlo)) Obecnie takie liczby są niezbędne w kryptografii, która w dzisiejszych czasach odgrywa niezwykle ważną rolę. To dzięki niej możemy w bezpieczny sposób przesyłać informacje za pomocą Internetu lub trzymać dane na komputerze, do których dostęp jest możliwy dopiero po pobadaniu prawidłowego hasła.

Współczesne metody generowanie liczb losowych

Obecnie źródła liczb losowych można podzielić na dwie grupy

  1. Generatory sprzętowe
  2. Generatory programowe

Generatory sprzętowe są to urządzenia elektroniczne konstruowane specjalnie w celu generacji liczb losowych. Ich podstawowym elementem są diody szumowe. Nazywane są one (z ang.) TRNG – True Random Number Generator.

Generatory programowe (z ang.) PRNG – Pseudo Random Number Generator) – korzystają z formuły matematycznej i generują liczby przez obliczenia matematyczne. Nie są one faktycznie losowe, ale mają wygląd liczb losowych, tzn. ich własności statystyczne są bardzo zbliżone do własności liczb prawdziwie losowych.

Zalety i wady liczb pseudolosowych

W codziennym życiu, większość z nas korzysta generatorów programowych, generujących liczby pseudolosowe. Ich ogromną zaletą jest łatwość użycia oraz szybkość.

Największą wadą jest to, że mając kontrolę lub znając wartości podawane na wejście (tzw. ziarno, ang. seed) generatora oraz jego stan wewnętrzny bez trudu można przewidzieć zwracane przezeń liczby.

W wielu językach programowania (np. Python) jako ziarno pobierany jest czas systemowy.