PHP随机函数rand()、mt_rand()、srand()、mt_srand() 的区别

1、生成随机数发生器种子的函数

srand()、 mt_srand()

区别:mt_srand()  比 srand() 更好的生成随机数发生器种子

定义:

void srand([int $seed])

void mt_srand([int $seed])

用 seed 来给随机数发生器播种。 没有设定 seed 参数时,会被设为随时数。

参数:

seed 可选的种子值

返回值: 没有

#example

echo microtime();

=> 0.22750900 1534295333

 

function make_seed()

{

  list($usec, $sec) = explode(' ', microtime());

  return (float) $sec + ((float) $usec * 100000);

}

mt_srand(make_seed());
$randval = mt_rand();

 

提示:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 给随机数发生器播种 ,因为现在是由系统自动完成的。

 

 2、随机数生成函数 rand() 、mt_rand()

定义:

 

int rand ( void )

 

int rand ( int $min , int $max )


int mt_rand ( void )

int mt_rand ( int $min , int $max )

很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。

mt_rand() 函数用了 » Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。

 

如果没有提供可选参数 min 和 maxmt_rand() 返回 0 到 mt_getrandmax() 之间的伪随机数。

 

 

getrandmax()  最大值为:32767

mt_getrandmax() 最大值为:2147483647

 

提示:自PHP 4.2 开始 随机数发生器有系统自动进行播种。

 

 

 

PHP 常用数学函数

Math 函数

  • abs — 绝对值
  • acos — 反余弦
  • acosh — 反双曲余弦
  • asin — 反正弦
  • asinh — 反双曲正弦
  • atan2 — 两个参数的反正切
  • atan — 反正切
  • atanh — 反双曲正切
  • base_convert — 在任意进制之间转换数字
  • bindec — 二进制转换为十进制
  • ceil — 进一法取整
  • cos — 余弦
  • cosh — 双曲余弦
  • decbin — 十进制转换为二进制
  • dechex — 十进制转换为十六进制
  • decoct — 十进制转换为八进制
  • deg2rad — 将角度转换为弧度
  • exp — 计算 e 的指数
  • expm1 — 返回 exp(number) - 1,甚至当 number 的值接近零也能计算出准确结果
  • floor — 舍去法取整
  • fmod — 返回除法的浮点数余数
  • getrandmax — 显示随机数最大的可能值
  • hexdec — 十六进制转换为十进制
  • hypot — 计算一直角三角形的斜边长度
  • intdiv — 对除法结果取整
  • is_finite — 判断是否为有限值
  • is_infinite — 判断是否为无限值
  • is_nan — 判断是否为合法数值
  • lcg_value — 组合线性同余发生器
  • log10 — 以 10 为底的对数
  • log1p — 返回 log(1 + number),甚至当 number 的值接近零也能计算出准确结果
  • log — 自然对数
  • max — 找出最大值
  • min — 找出最小值
  • mt_getrandmax — 显示随机数的最大可能值
  • mt_rand — 生成更好的随机数
  • mt_srand — 播下一个更好的随机数发生器种子
  • octdec — 八进制转换为十进制
  • pi — 得到圆周率值
  • pow — 指数表达式
  • rad2deg — 将弧度数转换为相应的角度数
  • rand — 产生一个随机整数
  • round — 对浮点数进行四舍五入
  • sin — 正弦
  • sinh — 双曲正弦
  • sqrt — 平方根
  • srand — 播下随机数发生器种子
  • tan — 正切
  • tanh — 双曲正切

 

PHP 预定义常量

 

posted @ 2018-08-15 09:22  纭卿殇  Views(4890)  Comments(0Edit  收藏  举报