PHP 生成随机数rand()和mt_rand()的区别【转】

rand

(PHP 4, PHP 5, PHP 7)

rand—产生一个随机整数

说明

rand(void) :int

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

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

Note:在某些平台下(例如 Windows)getrandmax()只有 32767。如果需要的范围大于 32767,那么指定minmax参数就可以生成更大的数了,或者考虑用mt_rand()来替代之。

参数

min

返回的最低值(默认:0)

max

返回的最高值(默认:getrandmax()

返回值

A pseudo random value betweenmin(or 0) andmax(orgetrandmax(), inclusive).

更新日志

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

范例

Example #1rand()例子

<?php  
echo rand() . "n";  
echo rand() . "n";  
  
echo rand(5, 15);  
?>

以上例程的输出类似于:

7771
22264
11

mt_rand

(PHP 4, PHP 5, PHP 7)

mt_rand—生成更好的随机数

说明

mt_rand(void) :int

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

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

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

参数

min

可选的、返回的最小值(默认:0)

max

可选的、返回的最大值(默认:mt_getrandmax()

返回值

返回min(或者 0) 到max(或者是到mt_getrandmax(),包含这个值)之间的随机整数。

更新日志

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

范例

Example #1mt_rand()例子

<?php  
echo mt_rand() . "n";  
echo mt_rand() . "n";  
  
echo mt_rand(5, 15);  
?>

以上例程的输出类似于:

1604716014
1478613278
6

参见

来源:
https://www.php.net/manual/zh/function.mt-rand.php
https://www.php.net/manual/zh/function.rand.php

原文地址:https://www.cnblogs.com/KillBugMe/p/13261485.html