mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_rand生成更好的隨機(jī)數(shù)

說明

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

很多老的 libc 的隨機(jī)數(shù)發(fā)生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數(shù)默認(rèn)使用 libc 隨機(jī)數(shù)發(fā)生器。mt_rand() 函數(shù)是非正式用來替換它的。該函數(shù)用了 ? Mersenne Twister 中已知的特性作為隨機(jī)數(shù)發(fā)生器,它可以產(chǎn)生隨機(jī)數(shù)值的平均速度比 libc 提供的 rand() 快四倍。

如果沒有提供可選參數(shù) minmax,mt_rand() 返回 0 到 mt_getrandmax() 之間的偽隨機(jī)數(shù)。例如想要 5 到 15(包括 5 和 15)之間的隨機(jī)數(shù),用 mt_rand(5, 15)。

參數(shù)

min

可選的、返回的最小值(默認(rèn):0)

max

可選的、返回的最大值(默認(rèn):mt_getrandmax()

返回值

返回 min (或者 0) 到 max (或者是到 mt_getrandmax() ,包含這個(gè)值)之間的隨機(jī)整數(shù)。

更新日志

版本 說明
4.2.0隨機(jī)數(shù)發(fā)生器自動(dòng)進(jìn)行播種。

范例

示例 #1 mt_rand() 例子

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

echo 
mt_rand(515);
?>

以上例程的輸出類似于:

1604716014
1478613278
6

注釋

警告

The distribution of mt_rand() return values is biased towards even numbers on 64-bit builds of PHP when max is beyond 2^32.

參見

  • mt_srand() - 播下一個(gè)更好的隨機(jī)數(shù)發(fā)生器種子
  • mt_getrandmax() - 顯示隨機(jī)數(shù)的最大可能值
  • rand() - 產(chǎn)生一個(gè)隨機(jī)整數(shù)