Materiály o náhodných číslach: ako generátory fungujú a kde zlyhávajú

Náhodné číslo vyzerá ako tá najjednoduchšia vec, ktorú dokáže počítač vytvoriť, a pritom patrí k tým, pri ktorých je veľmi ľahké urobiť nenápadnú chybu. Materiály v tejto sekcii vysvetľujú, odkiaľ sa čísla berú, čo odlišuje spoľahlivý generátor od nespoľahlivého a po ktorom nástroji siahnuť, keď výsledok musí obstáť — pri žrebovaní v triede, v súťaži o ceny alebo pri testovacej množine údajov.

Kde začať

Prečítajte si, čo je generátor náhodných čísel: hardvérové, pseudonáhodné a kryptograficky bezpečné generátory, prečo sa čísla opakujú a čo ponúka webový prehliadač. Ak namiesto vysvetlenia potrebujete priamo čísla, náš generátor náhodných čísel ich vytvorí vo vašom prehliadači v ľubovoľnom rozsahu, s opakovaním alebo bez neho.

Kde generátory nenápadne zlyhávajú

Silný zdroj náhodnosti predstavuje iba polovicu úspechu. Tou druhou je prevod jeho surových hodnôt do vášho rozsahu, a práve na tom mnohé podomácky vytvorené generátory zlyhávajú. Vziať hodnotu modulo veľkosť rozsahu je zdanlivo priamočiary prístup, ktorý však prináša nenápadné skreslenie: pokiaľ veľkosť rozsahu nedelí výstupný priestor zdroja bezo zvyšku, najnižšie čísla v rozsahu padajú o niečo častejšie než ostatné. Táto chyba sa nazýva skreslenie modulom (modulo bias). Jedným z riešení je výber so zamietaním (rejection sampling): hodnoty, ktoré spadnú do nerovnomerného zvyšku, sa zahodia a žrebuje sa znova. Náš generátor to robí presne takto, takže každé číslo vo vašom rozsahu má pri každom žrebovaní rovnakú šancu.

Rovnaká úvaha vylučuje aj skratky, po ktorých ľudia siahajú ako prvé. Math.random() neposkytuje žiadne záruky bezpečnosti a tabuľkové funkcie ako RAND() a RANDBETWEEN() patria do rovnakej kategórie: postačujú na hrubé premiešanie, no nie na čokoľvek, čo by niekto mohol spochybniť.

Čísla, zoznamy a kocky

Generátor náhodných čísel vracia čísla z rozsahu, ktorý sami určíte. Nástroj na náhodný výber zo zoznamu pracuje so zoznamom, ktorý doň vložíte — s menami, prihláškami či možnosťami —, takže čísla nemusíte ručne priraďovať k riadkom. Pri spoločenských hrách hádzanie kockou hodí kockami a spočíta ich súčet, a pri voľbe medzi dvoma možnosťami postačí hádzanie mincou. Ak má náhodnosť niečo chrániť, a nie iba rozhodovať, použite silný generátor hesiel. Všetky tieto nástroje čerpajú z rovnakého kryptograficky bezpečného zdroja vo vašom prehliadači.

Ste pripravení vyskúšať nástroj?

Vyskúšajte náš bezplatný a bezpečný nástroj Generátor náhodných čísel priamo vo vašom prehliadači.

Otvoriť nástroj