10 методов генерации случайных чисел: изучение генераторов псевдослучайных и истинно случайных чисел

Вот несколько методов генерации случайных чисел:

  1. Генератор псевдослучайных чисел (ГПСЧ). Это алгоритмы, которые используют математические формулы для генерации последовательности чисел, которые кажутся случайными. Последовательность определяется начальным значением, называемым начальным числом. Общие ГПСЧ включают линейный конгруэнтный генератор и вихрь Мерсенна.

  2. Аппаратные генераторы случайных чисел (HRNG): эти генераторы используют физические процессы, такие как атмосферный шум или радиоактивный распад, для создания случайных чисел. HRNG часто считаются более случайными, чем PRNG.

  3. Генератор случайных чисел операционной системы. Многие операционные системы предоставляют API (интерфейсы прикладного программирования), которые позволяют программам получать доступ к случайным числам, генерируемым операционной системой. Эти случайные числа обычно генерируются с использованием комбинации аппаратных и программных источников.

  4. Бросание кубиков. Бросок кубиков — это классический метод генерации случайных чисел. Стандартный шестигранный кубик может выдать случайное число от 1 до 6. Можно бросить несколько кубиков, чтобы получить более широкий диапазон случайных чисел.

  5. Перетасовка. Перетасовка колоды карт или списка чисел может использоваться для создания случайных перестановок. Порядок, в котором карты или числа появляются после перетасовки, можно использовать как случайные значения.

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

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

  8. Квантовые генераторы случайных чисел (QRNG): QRNG используют квантовые явления, такие как измерение поляризации фотонов, для генерации случайных чисел. Эти генераторы считаются действительно случайными и не подвержены влиянию каких-либо детерминированных процессов.

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

  10. Математические алгоритмы. Для генерации случайных чисел можно использовать различные математические алгоритмы, такие как алгоритм Блюма-Блюма Шуба или алгоритм XORshift.