mt_rand

(PHP 4, PHP 5)

mt_randГенерирует случайное значение методом mt

Описание

int mt_rand ( void )
int mt_rand ( int $min , int $max )

Многие генераторы случайных чисел в старых библиотеках имеют сомнительные или неизвестные характеристики, а также работают довольно медленно. По умолчанию, PHP использует генератор случайных чисел libc с помощью функции rand(). Функция mt_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(), включительно)

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

Версия Описание
4.2.0Генератор случайных чисел инициализируется автоматически.

Примеры

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

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

echo 
mt_rand(515);
?>

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

1604716014
1478613278
6

Примечания

Предостережение

Распределение значений, возвращаемых mt_rand(), отдает предпочтение четным числам на 64-битных сборках PHP, если параметр max больше 2^32.

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

  • mt_srand() - Переинициализирует генератор случайных чисел mt
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа
  • rand() - Генерирует случайное число

Коментарии

Автор:
To reiterate the message about *not* using mt_rand() for anything security related, here's a new tool that has been just posted that recovers the seed value given a single mt_rand() output:

http://www.openwall.com/php_mt_seed/README
2013-11-05 13:13:32
http://php5.kiev.ua/manual/ru/function.mt-rand.html
Автор:
The seed is the PID + LCG (https://github.com/php/php-src/search?q=GENERATE_SEED&unscoped_q=GENERATE_SEED)
2018-12-20 10:24:09
http://php5.kiev.ua/manual/ru/function.mt-rand.html
To see some systematic deviations from a universal distribution run:

<?php
$alfabet 
str_split('ADHKLMNPSTUWX');
$countalfabet count($alfabet)-1;
$code array_fill_keys($alfabet0);
for (
$L=0$L<80*$countalfabet$L++)
{
 
$lettr floor(mt_rand 0$countalfabet ));
 
$code[$alfabet[$lettr]]++;
}

foreach(
$code as $L => $Freq)
{
  for(
$F=0$F<$Freq$F++)
  {
    echo 
$L;
  }
  echo 
"\n<br/>";
}
?>
2023-01-10 21:00:58
http://php5.kiev.ua/manual/ru/function.mt-rand.html

    Поддержать сайт на родительском проекте КГБ