Псевдослучайная последовательность чисел — это последовательность, которая выглядит статистически случайной , несмотря на то, что была создана полностью детерминированным и повторяющимся процессом. [1] Генераторы псевдослучайных чисел часто используются в компьютерном программировании, поскольку традиционные источники случайности, доступные людям (например, бросание игральных костей), основаны на физических процессах, которые не всегда доступны компьютерным программам, хотя разработки в области технологии аппаратных генераторов случайных чисел поставили это под сомнение.
Генерация случайных чисел имеет множество применений, например, для случайной выборки , методов Монте-Карло , настольных игр или азартных игр . Однако в физике большинство процессов, таких как гравитационное ускорение, являются детерминированными, что означает, что они всегда дают один и тот же результат из одной и той же начальной точки. Некоторые заметные исключения — это радиоактивный распад и квантовое измерение , которые оба моделируются как действительно случайные процессы в базовой физике. Поскольку эти процессы не являются практическими источниками случайных чисел, используются псевдослучайные числа, которые в идеале обладают непредсказуемостью действительно случайной последовательности, несмотря на то, что генерируются детерминированным процессом. [2]
Во многих приложениях детерминированный процесс представляет собой компьютерный алгоритм , называемый генератором псевдослучайных чисел , которому сначала необходимо предоставить число, называемое случайным семенем . Поскольку одно и то же семя будет каждый раз давать одну и ту же последовательность, важно, чтобы семя было выбрано правильно и хранилось в тайне, особенно в приложениях безопасности , где непредсказуемость шаблона является критической характеристикой. [3]
В некоторых случаях, когда важно, чтобы последовательность была явно непредсказуемой, использовались физические источники случайных чисел, такие как радиоактивный распад, атмосферный электромагнитный шум, собираемый с радиоприемника, настроенного между станциями, или смешанные тайминги нажатий клавиш . [1] [4] Временные затраты, необходимые для получения этих чисел, приводят к компромиссу: использованию некоторых из этих физических показаний в качестве затравки для генератора псевдослучайных чисел.
До появления современных вычислительных машин исследователи, которым требовались случайные числа, либо генерировали их различными способами ( игральные кости , карты , рулетки и т. д . ) , либо использовали существующие таблицы случайных чисел.
Первая попытка предоставить исследователям готовый запас случайных цифр была предпринята в 1927 году, когда Cambridge University Press опубликовало таблицу из 41 600 цифр, разработанную LHC Tippett . В 1947 году корпорация RAND сгенерировала числа с помощью электронного моделирования колеса рулетки; [5] результаты были в конечном итоге опубликованы в 1955 году как A Million Random Digits with 100 000 Normal Deviates .
В теоретической информатике распределение является псевдослучайным по отношению к классу противников, если ни один противник из этого класса не может отличить его от равномерного распределения со значительным преимуществом. [ 6] Это понятие псевдослучайности изучается в теории сложности вычислений и имеет приложения в криптографии .
Формально, пусть S и T — конечные множества, а F = { f : S → T } — класс функций. Распределение D над S является ε- псевдослучайным относительно F , если для каждого f из F статистическое расстояние между распределениями и , где выбирается из D , а выбирается из равномерного распределения на S , не превышает ε.
В типичных приложениях класс F описывает модель вычислений с ограниченными ресурсами, и кто-то заинтересован в проектировании распределений D с определенными свойствами, которые являются псевдослучайными относительно F. Распределение D часто указывается как выход псевдослучайного генератора . [7]
псевдослучайность, теория эффективного создания объектов, которые «выглядят случайными», несмотря на то, что они созданы с использованием незначительной или нулевой случайности.
{{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ) Лучшая общепринятая практика. Отменяет RFC 1750.