• 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 预定义常量

  • 相关阅读:
    各种知识点
    链表
    滑动窗口
    数组

    【转】无重复字符的最长子串
    【转】荷兰国旗问题 三指针排序
    【转】回溯思想团灭排列、组合、子集问题
    【LeetCode】45. 跳跃游戏 II
    动态分配内存初始化二维数组
  • 原文地址:https://www.cnblogs.com/zwesy/p/9479476.html
Copyright © 2020-2023  润新知