Math 函数
PHP Manual

mt_rand

(PHP 4, PHP 5)

mt_rand生成更好的随机数

说明

int mt_rand ([ int $min ], int $max )

很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。 mt_rand() 函数是非正式用来替换它的。该函数用了 » Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。

如果没有提供可选参数 minmaxmt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5, 15)

Example #1 mt_rand() 范例

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

以上例程的输出类似于:

1604716014
1478613278
6

Note:

在 3.0.7 之前的版本中,max 的含义是 range。要在这些版本中得到和上例相同 5 到 15 的随机数,简短的例子是 mt_rand (5, 11)

参见 mt_srand()mt_getrandmax()rand()

参数

min

Optional lowest value to be returned (default: 0)

max

Optional highest value to be returned (default: mt_getrandmax())

返回值

A random integer value between min (or 0) and max (or mt_getrandmax(), inclusive)

更新日志

版本 说明
4.2.0随机数发生器自动进行播种。

范例

Example #2 mt_rand() example

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

echo 
mt_rand(515);
?>

以上例程的输出类似于:

1604716014
1478613278
6

注释

Caution

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

参见


Math 函数
PHP Manual