mt_rand

(PHP 4, PHP 5, PHP 7)

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

Описание

mt_rand ( void ) : int
mt_rand ( int $min , int $max ) : int
Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes() или openssl_random_pseudo_bytes() вместо данной.

Многие генераторы случайных чисел в старых библиотеках имеют сомнительные или неизвестные характеристики, а также работают довольно медленно. Функция mt_rand() представляет собой замену старой функции rand(). Она использует генератор случайных чисел с известными характеристиками, основанный на » Вихре Мерсенна, который генерирует случайные числа в среднем в четыре раза быстрее, чем libc rand().

Вызванная без необязательных параметров min и max, функция mt_rand() возвращает псевдослучайное значение между 0 и mt_getrandmax(). Если вам нужно, например, случайное число между 5 и 15 (включительно), используйте вызов mt_rand(5,15)

Список параметров

min

Необязательный параметр: минимальное значение случайного числа (по умолчанию: 0)

max

Необязательный параметр: максимальное значение случайного числа (по умолчанию: mt_getrandmax())

Возвращаемые значения

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

Список изменений

Версия Описание
7.2.0 Для mt_rand() произведено исправление бага смещения по модулю. Это означает, что последовательности сгенерированные с конкретным начальным значением могут отличаться от сгенерированных в PHP 7.1 для 64-битных машин.
7.1.0 rand() теперь является псевдонимом для mt_rand().
7.1.0 Функция mt_rand() была обновлена и теперь использует корректную версию генератора случайных чисел на основе Вихря Мерсенна. Для использования старого поведения, используйте mt_srand() со вторым параметром, установленным в MT_RAND_PHP.
5.3.4 Приводит к ошибке E_WARNING и возвращает FALSE, если max < min.

Примеры

Пример #1 Пример использования mt_rand()

<?php
echo mt_rand() . "\n";
echo 
mt_rand() . "\n";

echo 
mt_rand(515);
?>

Результатом выполнения данного примера будет что-то подобное:

1604716014
1478613278
6

Примечания

Внимание

Диапазон min - max не должен выходить за границы mt_getrandmax(). То есть (max - min) <= mt_getrandmax(). В противном случае, mt_rand() может возвращать менее качественные случайные числа.

Смотрите также

  • mt_srand() - Переинициализирует генератор случайных чисел на базе Вихря Мерсенна
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа
  • random_int() - Генерирует криптографически безопасные псевдослучайные целые числа
  • random_bytes() - Генерирует криптографически безопасные псевдослучайные байты
  • openssl_random_pseudo_bytes() - Генерирует псевдослучайную последовательность байт
  • rand() - Генерирует случайное число