Ⅰ php中函数rand和mt_rand的区别比较
PHP函数rand和mt_rand
mt_rand()
比rand()
快四倍
很多老的
libc
的随机数发生器具有一些不确定和未知的特性而且很慢。PHP
的
rand()
函数默认使用
libc
随机数发生器。mt_rand()
函数是非正式用来替换它的。该函数用了
Mersenne
Twister
中已知的特性作为随机数发生器,mt_rand()
可以产生随机数值的平均速度比
libc
提供的
rand()
快四倍。
mt_rand()
比rand()
快四倍
mt_rand
—
生成更好的随机数
(PHP
3
>=
3.0.6,
PHP
4,
PHP
5)
int
mt_rand
(
[int
min,
int
max]
)
很多老的
libc
的随机数发生器具有一些不确定和未知的特性而且很慢。PHP
的
rand()
函数默认使用
libc
随机数发生器。mt_rand()
函数是非正式用来替换它的。该函数用了
Mersenne
Twister(马其塞旋转)
中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比
libc
提供的
rand()
快四倍。
如果没有提供可选参数
min
和
max,mt_rand()
返回
0
到
RAND_MAX
之间的伪随机数。
例如想要
5
到
15(包括
5
和
15)之间的随机数,用
mt_rand(5,
15)。
注:
自
PHP
4.2.0
起,不再需要用
srand()
或
mt_srand()
函数给随机数生成器播种,现已自动完成。
rand
—
产生一个随机整数
(PHP
3,
PHP
4,
PHP
5)
int
rand
(
[int
min,
int
max]
)
如果没有提供可选参数
min
和
max,rand()
返回
0
到
RAND_MAX
之间的伪随机整数。例如想要
5
到
15(包括
5
和
15)之间的随机数,用
rand(5,
15)。
注:
在某些平台下(例如
Windows)RAND_MAX
只有
32768。如果需要的范围大于
32768,那么指定
min
和
max
参数就可以生成大于
RAND_MAX的数了,或者考虑用
mt_rand()
来替代之。
注:
自
PHP
4.2.0
起,不再需要用
srand()
或
mt_srand()
函数给随机数生成器播种,现已自动完成。
mt_rand定义和用法
mt_rand()
使用
Mersenne
Twister
算法返回随机整数。
语法
mt_rand(min,max)说明
如果没有提供可选参数
min
和
max,mt_rand()
返回
0
到
RAND_MAX
之间的伪随机数。例如想要
5
到
15(包括
5
和
15)之间的随机数,用
mt_rand(5,
15)。
很多老的
libc
的随机数发生器具有一些不确定和未知的特性而且很慢。PHP
的
rand()
函数默认使用
libc
随机数发生器。mt_rand()
函数是非正式用来替换它的。该函数用了
Mersenne
Twister
中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比
libc
提供的
rand()
快四倍。
提示和注释
注释:自
PHP
4.2.0
起,不再需要用
srand()
或
mt_srand()
函数给随机数发生器播种,现在已自动完成。
注释:在
3.0.7
之前的版本中,max
的含义是
range
。要在这些版本中得到和上例相同
5
到
15
的随机数,简短的例子是
mt_rand
(5,
11)。
例子
在本例中,我们会返回一些随机数:
复制代码
代码如下:
<?php
echo(mt_rand());
echo(mt_rand());
echo(mt_rand(10,100));
?>
输出类似:
3150906288
513289678
35
Ⅱ php中如何使用随机函数rand()生成一个数字验证码
如果要生成四位数字的验证码,则可以用函数:
$srand = rand(1000,9999);
会生成在1000到9999之间的随机数字,如果要生成更多位数的数字,可以更改最小、最大值。
Ⅲ 求用php 随机函数生成一个长度为20的全是数字的字符串
$str = '0123456789';
for($i=0; $i<20; $i++) {
$str .= $str{mt_rand(0, strlen($str))};
}
echo $str;