Czym są liczby pseudolosowe powinien każdy programista mniej więcej wiedzieć. Są to liczby, które mają rozkład mniej więcej losowy. Dlaczego nie są to liczby losowe tylko pseudolosowe? Otóż prawdziwie losowe liczby występują w zasadzie tylko w przyrodzie. Bo jak można nazwać liczby generowane za pomocą algorytmu całkowicie losowymi?
W praktyce daje nam to pewną wspaniałą własność, która może być zarówno być zarówno błogosławieństwem jak i przekleństwem. Dla mnie jest błogosławieństwem ponieważ aktualnie zajmuję się symulacją cyfrową, a tu “powtarzalność” eksperymentu jest bezcenna! Co oznacza owa “powtarzalnosć eksperymentu”? Jest to możliwość prześledzenia procesu, który symulujemy, kilka razy w _identycznych_ warunkach - jest to niemożliwe w rzeczywistości.
Postanowiłem napisać ten cykl artykułów o generatorach pseudolosowych ponieważ ich losowość polega na tym, że przechodzą testy, na zgodność z pewnym, założonym rozkładem prawdopodobieństwa. O testach tych być może również napiszę na koniec cyklu wpisów o samych generatorach różnych rozkładów.
Przy czytaniu przyda się znajomość rachunku prawdopodobieństwa. W następnej notce zacznę od rozkładu równomiernego, który stanowi podstawę dla innych rozkładów - jest więc swego rodzaju “królem”. Przykładowe implementacje będę podawał w języku C++, ale pojawią się również algorytmy więc przełożenie ich na inne języki nie powinno stanowić problemu (zwłaszcza, gdy ma się kod podglądowy).