Как работают генераторы случайных чисел и насколько случайный результат они выдают?

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Подбрасывая монетку, можно быть уверенным, что шансы выпадения орла и решки одинаковы. Но можно зайти на сайт с генерацией рандомных чисел или скачать приложение на телефон, в котором будет возможность имитировать бросок монетки. Однако будет ли в таком случае результат действительно случайным, или же программа подберет число/результат, который заранее был известен?

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

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

Источник: afftimes.com

Хорошим и простым примером будет один из самых ранних алгоритмов для генерации псевдослучайных чисел. Например, трехзначное число возводится в квадрат, затем из середины квадрата числа берётся трехзначное число, которое и становится результатом. А производя подобные вычисления несколько раз подряд, получается цепочка псевдослучайных чисел. Выглядит это так: допустим начальное значение 111, в таком случае 111² = 12321, получаем результат 232, после чего повторяем процедуру — 232² = 53824 и результатом становится 382. Чтобы подбор чисел не был постоянно одинаковым, важно чтобы начальное значение было разным при запуске алгоритма. Так, например, программы могут брать начальное значение исходя из даты и времени, когда был запущен алгоритм/приложение.

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

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

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

ГИСЧ измеряющий колебания электромагнитного поля вакуума (Сидней, Австралия)
ГИСЧ измеряющий колебания электромагнитного поля вакуума (Сидней, Австралия)
Источник: quantumnumbers.anu.edu.au

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

Автор не входит в состав редакции iXBT.com (подробнее »)

12 комментариев

Добавить комментарий

s
Простейшим истинным генератором случайных чисел является игральный кубик
а в начале статьи сказали, что монетка. В реальности, ни монетка, ни кубик истинными генераторами стать не могут. Настоящая монетка, кубик всегда имеют физические изъяны, неравномерность веса и как генератор использоваться не могут. Только как абстрактный пример.
s
Почему же? Монетка и кубик — это классические примеры двумерного и шестимерного генератора случайных чисел.
b
В РФ правильному генератору случайных чисел выдает лицензию ФСБ.
a
При этом для отладки вычислительных программ очень желательно, чтобы генератор выдавал бы известную серию чисел. А потом уже можно переходить и на «истинно случайные генераторы».
b
Истинный ГСЧ на основе атмосферных шумов — random.org, работающий с 1998 года.
Сейчас, похоже, сайт с РФ недоступен.
GennDALF
Получать случайные значения с помощью запроса на сетевой ресурс, использующий ГИСЧ.
G
«Случайность — непознанная закономерность!»
Vesennaya
Случайности не случайны, По)))
113404987599120471675@google
https://www.atomic-energy.ru/news/2023/04/06/134040

Добавить комментарий

Сейчас на главной

Новости

Публикации

Обзор внешнего аккумулятора EcoFlow RAPID 25K (EF-HB-002): 170 Вт, PD 3.1 и информативный TFT-дисплей

EcoFlow RAPID Power Bank (модель EF-HB-002) позиционируется как высокомощный внешний аккумулятор для ноутбуков, планшетов и смартфонов. Заявленные параметры: ёмкость 25 000 мАч, суммарная выходная...

«Кольца, сережки, крестик есть?»: как за колбасу в СССР 1933 года отдали 98 тонн золота

Представьте магазин СССР 1933 года. За колбасу здесь просят золотое обручальное кольцо. Узнаем, как Торгсин выкачал 98 тонн золота у населения и построил Магнитку?

✦ ИИ  Как яблочный сок делают прозрачным — и почему одного сита недостаточно

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

Почему рекламные видеоролики выглядят дорого: механика цветокоррекции

Рекламные видеоролики выигрывают не техникой, а цветом: как устроена цветокоррекция, чем грейд отличается от фильтра и почему дешёвый кадр выглядит богатым.

✦ ИИ  Зачем шоколад перемешивают часами, если его уже измельчили

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

✦ ИИ  Зачем картофель фри обжаривают, а потом замораживают

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