Люди использовали случайные числа на протяжении тысячелетий, поэтому эта концепция не нова. От лотереи в древнем Вавилоне до столов рулетки в Монте-Карло и игр в кости в Вегасе — цель состоит в том, чтобы довести конечный результат до случайности. При этом генератор случайных чисел доступен прямо сейчас.
Но помимо азартных игр, случайность имеет множество применений в науке, статистике, криптографии и многом другом. Тем не менее, использование игральных костей, монет или аналогичных носителей в качестве случайного устройства имеет свои ограничения.
Из-за механической природы этих методов генерация большого количества случайных чисел требует много времени и усилий. Благодаря человеческой изобретательности в нашем распоряжении есть более мощные инструменты и методы.
Давайте рассмотрим два основных метода, используемых для генерации случайных чисел. Первый метод основан на физическом процессе и извлекает источник случайности из некоторого физического явления, которое, как ожидается, будет случайным.
Такое явление имеет место вне компьютера. Он измеряется и корректируется с учетом возможных смещений из-за процесса измерения. Примеры включают радиоактивный распад, фотоэлектрический эффект, космическое фоновое излучение, атмосферный шум и многое другое.
Таким образом, случайные числа, сгенерированные на основе такой случайности, называются «истинными» случайными числами.
Технически аппаратная часть состоит из устройства, которое преобразует энергию из одной формы в другую (например, излучение в электрический сигнал), усилителя и аналого-цифрового преобразователя для преобразования выходного сигнала в цифровое число.
В качестве альтернативы «истинным» случайным числам второй метод генерации случайных чисел включает вычислительные алгоритмы, которые могут давать очевидно случайные результаты.
Почему очевидно случайное? Поскольку полученные конечные результаты фактически полностью определяются начальным значением, также известным как начальное значение или ключ. Следовательно, если бы вы знали значение ключа и принцип работы алгоритма, вы могли бы воспроизвести эти, казалось бы, случайные результаты.
Генераторы случайных чисел этого типа часто называют генераторами псевдослучайных чисел и, как следствие, выводят псевдослучайные числа.
Несмотря на то, что этот тип генератора обычно не собирает никаких данных из источников естественной случайности, такой сбор ключей может быть возможен при необходимости.