Materiały o liczbach losowych: jak działają generatory i gdzie zawodzą

Liczba losowa wydaje się najprostszą rzeczą, jaką potrafi wytworzyć komputer, a jednocześnie łatwo się w niej po cichu pomylić. Artykuły w tym dziale wyjaśniają, skąd biorą się liczby, czym generator, na którym można polegać, różni się od takiego, któremu nie warto ufać, i po które narzędzie sięgnąć, gdy wynik musi się obronić – przy losowaniu w klasie, w konkursie albo przy tworzeniu zestawu danych testowych.

Od czego zacząć

Przeczytaj, czym jest generator liczb losowych: sprzętowe, pseudolosowe i kryptograficznie bezpieczne generatory, dlaczego liczby się powtarzają i co oferuje przeglądarka. Gdy zamiast wyjaśnień potrzebujesz liczb, generator liczb losowych losuje je w Twojej przeglądarce w dowolnym zakresie, z powtórzeniami lub bez.

Gdzie generatory po cichu zawodzą

Dobre źródło losowości to dopiero połowa pracy. Druga połowa to przeniesienie jego surowych wartości na Twój zakres i właśnie tu zawodzi wiele domowych generatorów. Wzięcie reszty z dzielenia przez rozmiar zakresu to najbardziej oczywiste podejście i jest ono subtelnie obciążone: jeśli rozmiar zakresu nie dzieli równo zbioru wartości źródła, najniższe liczby w zakresie wypadają nieco częściej niż pozostałe. Ta wada nazywa się obciążeniem modulo (modulo bias). Jednym z rozwiązań jest odrzucanie nadmiarowych wartości (rejection sampling): wartości z nierównego ogona odrzuca się i losuje od nowa. Nasz generator tak robi, więc każda liczba z Twojego zakresu ma w każdym losowaniu taką samą szansę.

To samo rozumowanie wyklucza skróty, po które sięga się najpierw. Math.random() nie obiecuje nic w kwestii bezpieczeństwa, a funkcje arkusza kalkulacyjnego, takie jak RAND() i RANDBETWEEN(), należą do tej samej klasy: wystarczą do szybkiego przetasowania, ale nie do niczego, co ktoś mógłby podważyć.

Liczby, listy i kości

Generator liczb losowych zwraca liczby z ustawionego przez Ciebie zakresu. Losowy wybór z listy działa na wklejonej przez Ciebie liście – imion, zgłoszeń, opcji – więc nie musisz ręcznie dopasowywać liczb do wierszy. Do gier planszowych rzut kością rzuca kośćmi i dodaje sumy, a do wyboru między dwiema możliwościami wystarczy rzut monetą. Gdy losowość ma coś chronić, a nie rozstrzygać, użyj generatora silnych haseł. Wszystkie te narzędzia korzystają w Twojej przeglądarce z tego samego kryptograficznie bezpiecznego źródła.

Chcesz wypróbować narzędzie?

Wypróbuj bezpłatne narzędzie „Generator liczb losowych” bezpośrednio w swojej przeglądarce.

Otwórz narzędzie