Какое число генерирует 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(), которая использует метод генератора простых чисел на базе Вихря Мерсенна по своей сути возвращает, не "случайное число", а "псевдослучайное число" ?

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

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽