Случайное число в математике и технике¶
Случайное число — это число, полученное в результате процесса, исход которого невозможно предсказать заранее с полной определённостью. В математике и прикладных дисциплинах различают собственно случайные величины и их реализации, а также псевдослучайные последовательности, генерируемые детерминированными алгоритмами. Понятие занимает центральное место в теории вероятностей, статистике, криптографии, компьютерном моделировании и азартных играх.
¶Основные понятия
Строго говоря, отдельное число не является «случайным» само по себе — случайным является механизм его получения. В теории вероятностей используют понятие случайной величины — функции, ставящей в соответствие каждому исходу испытания число. Реализация этой величины в конкретном испытании и есть наблюдаемое случайное число.
Ключевые характеристики:
- Равномерность распределения — все значения в заданном диапазоне равновероятны.
- Независимость — знание предыдущих значений не даёт информации о следующем.
- Непредсказуемость — отсутствие закономерности, позволяющей предсказать результат.
¶История
Простейшие устройства для получения случайных чисел — игральные кости — известны с глубокой древности; их находили в египетских гробницах, датируемых примерно 2000 годом до н. э. В Древней Греции и Риме применялись астрагалы и жребии. В XVII веке Блез Паскаль и Пьер Ферма заложили основы теории вероятностей, изучая задачи, связанные с азартными играми. В XX веке развитие вычислительной техники потребовало массового производства случайных чисел, что привело к появлению таблиц случайных чисел и первых генераторов.
¶Способы получения
¶Физические (аппаратные) генераторы
Истинно случайные числа получают из непредсказуемых физических процессов:
- бросание кости или монеты;
- извлечение шаров из урны;
- шум электронных компонентов (тепловой шум, дробовой шум);
- радиоактивный распад;
- атмосферные явления.
Такие источники называют генераторами истинно случайных чисел (TRNG). Их недостаток — низкая скорость и сложность интеграции в цифровые системы.
¶Таблицы случайных чисел
До распространения компьютеров применялись печатные таблицы, составленные из результатов физических экспериментов. Одна из первых крупных таблиц была опубликована в 1927 году Леонардом Типпеттом. Позднее, в 1955 году, корпорация RAND выпустила сборник «A Million Random Digits with 100,000 Normal Deviates».
¶Псевдослучайные генераторы
Программные генераторы (PRNG) вычисляют последовательность по детерминированной формуле, исходя из начального значения — зерна (seed). При одинаковом зерне последовательность воспроизводится. Распространённые алгоритмы:
- линейный конгруэнтный метод;
- вихрь Мерсенна (Mersenne Twister);
- регистр сдвига с линейной обратной связью;
- алгоритмы, основанные на хеш-функциях.
Псевдослучайные числа статистически неотличимы от истинно случайных при незнании алгоритма и зерна, но принципиально предсказуемы.
¶Криптографически стойкие генераторы
Для задач защиты информации применяются генераторы (CSPRNG), результаты которых вычислительно неотличимы от случайных даже при знании алгоритма. Они используются при генерации ключей шифрования, паролей и криптографических протоколов.
¶Применение
- Статистика — выборочные методы, метод Монте-Карло, бутстрэп.
- Криптография — ключи, одноразовые блокноты, протоколы аутентификации.
- Компьютерное моделирование — имитация физических, экономических, биологических процессов.
- Азартные игры — лотереи, рулетка, игровые автоматы.
- Тестирование — генерация тестовых данных, случайное тестирование программ.
- Искусство и дизайн — процедурная генерация, алгоритмическое искусство.
¶Псевдослучайные числа в России
В СССР и России вопросы генерации случайных чисел разрабатывались в рамках вычислительной математики и криптографии. В Институте прикладной математики АН СССР велись работы по методам Монте-Карло. В 1990-е и 2000-е годы российские стандарты криптографической защиты, в частности ГОСТ Р 34.10 и связанные с ним документы, регламентируют требования к генераторам случайных последовательностей для формирования ключей. Национальный стандарт ГОСТ Р 52633 описывает методы оценки качества генераторов.
¶Проверка качества
Для оценки последовательностей применяют статистические тесты:
- частотный тест (проверка равномерности);
- тест серий;
- тест на автокорреляцию;
- тест «хи-квадрат»;
- наборы NIST SP 800-22, Diehard, TestU01.
Ни один набор тестов не доказывает истинную случайность — он лишь выявляет отклонения от ожидаемых свойств.
¶Парадоксы и заблуждения
Распространено ошибочное представление, будто после серии одинаковых исходов вероятность противоположного возрастает («ошибка игрока»). В действительности при независимых испытаниях вероятность каждого исхода остаётся неизменной. Другой парадокс — «иллюзия кластеризации»: люди склонны считать случайными последовательности без повторов, тогда как реальные случайные последовательности часто содержат длинные серии одинаковых значений.
¶Интересные факты
- В 2018 году в рамках проекта Random.org, использующего атмосферный шум, были сгенерированы миллиарды случайных бит для научных и коммерческих задач.
- Число π иногда используют как источник псевдослучайных цифр, однако его статистические свойства как генератора остаются предметом дискуссий.
- В лотереях многих стран применяются механические лототроны, поскольку они обеспечивают физическую случайность и прозрачность.
Источники: Кнут Д. «Искусственный интеллект и программирование»; учебники по теории вероятностей Гнеденко Б. В., Вентцель Е. С.; документация NIST SP 800-22; материалы RAND Corporation; ГОСТ Р 52633.