mt_rand
(PHP 4, PHP 5, PHP 7)
mt_rand — Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
Описание
$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 .
|
Примеры
Пример #1 Пример использования mt_rand()
<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";
echo mt_rand(5, 15);
?>
Результатом выполнения данного примера будет что-то подобное:
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() - Генерирует случайное число