Генератор случайных чисел

Добавить на сайт Метаинформация

Другие инструменты

Бесплатный генератор случайных чисел для розыгрыша

Бесплатный генератор случайных чисел для розыгрыша

Научно-технический прогресс XX века во многом обязан развитию теории вероятностей и созданию генераторов случайных чисел.

Случайными называют числа, которые могут быть интерпретированы как результаты реализации какой-либо случайной величины — основного понятия теории вероятностей. Понятие случайности в данном контексте предусматривает непредсказуемость значения данной величины до начала эксперимента.

История случайных чисел

Потребность человечества в использовании случайных чисел возникла задолго до изобретения учёными устройств, позволяющих получать случайные массивы. Долгое время для генерации случайных чисел люди пользовались подручными средствами, в том числе объектами живой и неживой природы.

Одним из наиболее ярких примеров простейших генераторов случайных чисел являются всем знакомые игральные кости, находящие широкое применение и в настоящее время. В элементарных и обучающих экспериментах зависимостями закона движения игральной кости от окружающей её среды, начальных условий и человеческого фактора вполне можно пренебречь, поэтому количество очков, выпавших на игральной кости, с некоторыми оговорками можно считать случайной величиной. Игральные кости сыграли существенную роль в развитии теории вероятностей: в 1890 году английским исследователем Фрэнсисом Гальтоном (Francis Galton) был предложен способ генерации случайных чисел с использованием игральных костей.

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

Первый генератор случайных чисел, позволяющий получать большие массивы данных и пригодный для решения прикладных задач, был изобретён в 1939 году. Морис Джордж Кендалл (Maurice George Kendall) и Бернард Бабингтон-Смит (Bernard Babington Smith) создали устройство, с помощью которого можно было генерировать таблицу, содержащую 100 000 случайных чисел. А всего через 16 лет американской стратегической компанией RAND результаты английских академиков были улучшены в 10 раз — с помощью специальных машин была создана таблица из миллиона случайных чисел. Табличный метод генерации случайных чисел получил существенное развитие благодаря Джорджу Марсалье (George Marsaglia), получившим в 1996 году 650 Мбайт случайных чисел. Однако из-за узости области применения данный метод в настоящее время не имеет широкого признания.

Машины, генерирующие случайные числа в реальном времени, обладают рядом преимуществ по сравнению с устройствами, создающими таблицы случайных чисел. Одной из первых таких машин стал компьютер Ferranti Mark 1, в который в 1951 году была включена программа, генерирующая случайные числа на основе входного потока шума резистора. Интересно, что автором идеи создания подобной программы является великий английский математик Алан Тьюринг (Alan Mathison Turing). Также инновационным в области генерации случайных чисел стало изобретение в 1957 году устройства ERNIE (Electronic Random Number Indicator Equipment), первоначально предназначавшегося для генерации выигрышных номеров в британской лотерее.

Псевдослучайные числа

Изобретение генераторов случайных чисел, несомненно, значительно ускорило научно-технический процесс. Однако эти устройства обладали критически важным недостатком, существенно ограничивающим возможность их применения. Уже в середине XX века венгеро-американский математик Джон фон Нейман (John von Neumann) отмечал непригодность физических генераторов случайных чисел в вычислительной технике, обусловленную невозможностью повторения случайного эксперимента и, как следствие, невозможностью воспроизведения случайного числа для проверки работы машины. Так появилась потребность учёного сообщества в псевдослучайных числах — числах, обладающих рядом важных свойств случайных чисел, однако получаемых не в результате случайного эксперимента, а на основе некоторого алгоритма. Сам Джон фон Нейман стал автором метода «середины квадрата», позволяющего получать на выходе десятизначные псевдослучайные числа.

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

Интересные факты

  • По мнению ряда историков, первые попытки генерации случайных чисел относятся к 3500 году до нашей эры. Связаны они, как ни странно, с древнеегипетской настольной игрой «Сенет», заключающейся в передвижении фишек по доске.
  • Долгое время источниками случайных чисел для некоторых реальных практических задач служили результаты переписей населения и других полученных экспериментальным путём таблиц данных.
  • Уязвимостью алгоритмов генерации псевдослучайных чисел в начале 2010 годов воспользовался бывший директор по безопасности Multi-State Lottery Association. Нарушитель имел доступ к программному обеспечению, используемому для определения выигрышных номеров лотерейных билетов, с помощью чего мог определять выигрышные комбинации несколько дней в году. В 2015 году после выигрыша размером в 16,5 миллиона долларов ему было предъявлено обвинение.
  • Генератор псевдослучайных чисел, установленный на бортовом компьютере одного космического корабля серии «Аполлон» (Apollo), однажды стал причиной сбоев в его движении и серьёзного отклонения от предполагаемой траектории. Как выяснили учёные, выходные данные генератора, использовавшегося для расчёта угловых скоростей, в 80% случаев попадали в нижнюю полуплоскость, что абсолютно не соответствовало требуемым критериям случайности результатов работы генератора.

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

Рандомайзер (генератор чисел)

Рандомайзер (генератор чисел)

Ежедневно миллионы людей пользуются онлайн-сервисами генерации случайных чисел, но мало кто задумывается, что скрывается за этим процессом. Как работают генераторы случайных чисел и случайны ли эти числа вообще?

Как получают случайные числа

Наиболее известными примерами экспериментов со случайными исходами, которые можно интерпретировать как случайные числа, являются всем знакомые подбрасывания монеты или игральных костей, тасование карт или извлечение карты из перемешанной колоды. Этими техниками в повседневной жизни люди пользуются веками, однако для генерации больших массивов, очевидно, подобные методы не годятся.

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

Генераторы случайных и псевдослучайных чисел

Мало кто знает, но большинство современных устройств на самом деле генерируют псевдослучайные числа. Так называют последовательности чисел, свойства которых во многом схожи со случайными, однако механизм их построения существенно отличен. Истинные генераторы случайных чисел используют в своей работе результаты крошечных случайных физических процессов, таких как тепловой и дробовой шум, фотоэлектрический эффект или некоторые квантовые явления. Последовательность выходных данных такого генератора не может быть предсказана, в чем и заключается основное преимущество генераторов случайных чисел по сравнению с псевдослучайными. Наиболее важно это свойство случайных чисел в областях, где требуется конфиденциальность и безопасность данных, например, в криптографии.

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

Безусловно, ввиду высокой сложности устройства и стоимости генераторов случайных чисел большое внимание учёных в настоящее время уделяется поиску и оптимизации наиболее эффективных алгоритмов генерации псевдослучайных чисел. Были изобретены даже «криптографически стойкие генераторы псевдослучайных чисел» (CSPRNGS), находящие применение в областях шифрования и обеспечения целостности передаваемой информации.

Где используются случайные и псевдослучайные числа

Генераторы случайных чисел — неотъемлемая часть программного обеспечения большинства операционных систем. Кроме того, они незаменимы для проведения статистических испытаний и численного моделирования. Также генераторы случайных чисел применяются в создании сложных компьютерных игр и позволяют существенно расширить возможности искусственного интеллекта — одной из наиболее перспективных технологий этого десятилетия. Безусловно, широкое применение случайным числам нашлось и в лотереях, конкурсах и розыгрышах.

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