Какое число генерирует php функция mt_rand?

Ребят, привет!)

Задался тут вопросом, что в итоге возвращает php функция mt_rand() - "случайное целое число" или это все же "псевдослучайное целое число"?

В php-документации написано следующее:
"mt_rand — Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна"

далее по тексту, есть такая строка:
"Случайное целое значение между min (или 0) и max (или mt_getrandmax(), включительно), или false в случае, если max меньше min."

Так как функция mt_rand использует метод Вихря Мерсенна, можно глянуть описание данного метода в Википедии, и увидим следующее, в самой первой строке:
"Вихрь Мерсе́нна (англ. Mersenne twister, MT) — генератор псевдослучайных чисел (ГПСЧ)..."

Также, если мы обратимся к монографии Аверина Г.В. "СИСТЕМОДИНАМИКА", увидим на 88-89 строках, описание ГПСЧ и на 89 странице в есть такое предложение:
"Широкое распространение также получил алгоритм «вихрь Мерсенна», основанный на свойствах простых чисел Мерсенна. Подобные алгоритмы позволяют легко воспроизводить псевдослучайные числа с равномерным распределением, однако последовательности таких чисел не всегда удовлетворяют всем тестам на случайность"

Я правильно понимаю, что функция mt_rand(), которая использует метод генератора простых чисел на базе Вихря Мерсенна по своей сути возвращает, не "случайное число", а "псевдослучайное число" ?

Помогите пожалуйста понять этот нюанс.
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
Zoominger
@Zoominger
System Integrator
Все софтварные генераторы чисел не генерируют истинно случайные числа.

Настоящие ГСЧ есть, но обычно это такая штука, которая подрубается к компьютеру и встречается вживую довольно редко, погуглите про них, если интересно.

Есть обходной путь - давать юзеру двигать мышкой и случайно жать кнопки для накопления энтропии и на этой основе делать реально случайные числа, но в PHP, как вы понимаете, это не используется.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
LoliDeveloper
@LoliDeveloper
Линейная алгебра как смысл жизни
Чистая случайность это чуть ли не миф. Это как что-то не факторизуемое, не раскладываемое на алгоритмы, не зависящее от погоды или положения звёзд или шума космоса итп, и в то же время корректно выдающее значения.
Поэтому везде либо математический алгоритм удовлетворяющий некоторым критериям псевдорандома, либо какое-то физическое устройство, основывающееся на хаотичности окружающей среды.
Но вообще даже в крайних случаях последнего более чем достаточно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы