Действительно ли случайность честна? — история о псевдослучайных числах
Гид
На самом деле компьютер не способен сам создавать абсолютную случайность. Вместо этого он по заданной формуле генерирует последовательность чисел, которую крайне трудно предсказать, — она называется псевдослучайными числами (pseudo-random number).
Как они создаются
В браузере встроена функция генерации случайных чисел. Она отталкивается от внутреннего состояния, проходит через сложные вычисления и возвращает число от 0 до 1, при этом каждый раз обновляя внутреннее состояние для генерации следующего числа. Предсказать результат человеку практически невозможно.
Почему «псевдо», но всё же честно
Даже если случайность не абсолютная, для жеребьёвки и игр этого вполне достаточно, если вероятность каждого результата равномерна, а следующее значение невозможно предсказать. Главное — чтобы «ни один вариант не имел преимущества», и хороший генератор случайных чисел хорошо удовлетворяет этому свойству.
- Равномерна ли вероятность каждого варианта → основа честности
- Невозможно ли предсказать следующий результат → невозможность подстроить
- Не используется ли смещённый способ выбора (например, предпочтение первых по списку) → вопрос способа применения
Когда нужна более сильная случайность
Для задач, требующих очень высокой непредсказуемости, например безопасности или криптографии, используют криптографически стойкие случайные числа (crypto). Но для повседневных решений — выбора обеда, наказаний, деления на команды — обычного генератора случайных чисел более чем достаточно.
Итак, хотя название «псевдослучайные» может звучать так, будто это нечестно, если вероятность равномерна, а предсказать результат нельзя, этого полностью достаточно для жеребьёвки.