Список гидов

Действительно ли случайность честна? — история о псевдослучайных числах

Гид

На самом деле компьютер не способен сам создавать абсолютную случайность. Вместо этого он по заданной формуле генерирует последовательность чисел, которую крайне трудно предсказать, — она называется псевдослучайными числами (pseudo-random number).

Как они создаются

В браузере встроена функция генерации случайных чисел. Она отталкивается от внутреннего состояния, проходит через сложные вычисления и возвращает число от 0 до 1, при этом каждый раз обновляя внутреннее состояние для генерации следующего числа. Предсказать результат человеку практически невозможно.

Почему «псевдо», но всё же честно

Даже если случайность не абсолютная, для жеребьёвки и игр этого вполне достаточно, если вероятность каждого результата равномерна, а следующее значение невозможно предсказать. Главное — чтобы «ни один вариант не имел преимущества», и хороший генератор случайных чисел хорошо удовлетворяет этому свойству.

Когда нужна более сильная случайность

Для задач, требующих очень высокой непредсказуемости, например безопасности или криптографии, используют криптографически стойкие случайные числа (crypto). Но для повседневных решений — выбора обеда, наказаний, деления на команды — обычного генератора случайных чисел более чем достаточно.

Итак, хотя название «псевдослучайные» может звучать так, будто это нечестно, если вероятность равномерна, а предсказать результат нельзя, этого полностью достаточно для жеребьёвки.