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 和 max,mt_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 预定义常量

PHP随机函数rand()、mt_rand()、srand()、mt_srand() 的区别的更多相关文章

  1. 随机函数rand()和srand()

    C++中随机函数rand()和srand()的用法 一.rand() 函数名:   rand     功   能:   随机数发生器   用   法:   int rand(void); 所在头文件: ...

  2. awk之随机函数rand()和srand()

    awk之随机函数rand()和srand() 分类: LINUX 文件: abcdefg ...... 现在想要随机抽取5列组成下面的内容,允许重复: cffab ...... awk -F '' ' ...

  3. 随机函数rand()与srand()

    一.int rand(void); 函数所在的头文件是stdlib.h: 其内部实现线性同除法,不是真正的随机数.通常rand()%x是指在x范围内取模,返回值0-x; 系统默认随机种子是1: 二.v ...

  4. 认识随机函数rand()和srand(unsigned int )

    rand函数 int rand( void ); 函数名:   rand 功   能:   随机数发生器 用   法:   int rand(void); 所在头文件: stdlib.h 函数说明 : ...

  5. awk之随机函数rand()和srand() (转)

    转自:http://blog.chinaunix.net/uid-10540984-id-2942041.html 文件: 1234567 abcdefg ......   现在想要随机抽取5列组成下 ...

  6. 【转】随机函数的rand、srand用法

    from:深海的小鱼儿 地址:http://www.cnblogs.com/xmphoenix/archive/2011/04/07/2008622.html 随机函数的rand.srand用法 一& ...

  7. rand和srand的用法

    首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明. rand(产生随机数)表头文件: #include<stdlib.h> ...

  8. 随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题

    随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题 问题来源 一位小伙伴在使用 Ueditor 插件时出错,因为用的是 php7.1 ...

  9. rand()和srand()

    C++中rand() 函数的用法 1.rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数. 2.如果你要产生0~99这100个整数中的一个随机整数, ...

  10. rand()与srand()

    1.不用srand()的话 两次运行程序产生的随机数序列相同 2.用srand() 两次运行程序产生的随机数则不同 示例程序: #include<iostream> #include< ...

随机推荐

  1. Kubernetes1.91(K8s)安装部署过程(六)--node节点部署

    hi,everybody,我回来了,之前安装到flannel之后,文章一直没有更新,甚至不少小伙伴都来加qq询问是否继续更新了, 这里说明下原因,我在部署1.91node的时候的确出现了各种各样的问题 ...

  2. Python2.7-copy

    copy 模块,python 中的‘=’是使左边的对象成为右边对象的一个引用,对不可变对象(如数字,字符串等)使用‘=’一般不会出现问题,但当对字典,列表等可变对象进行‘=’操作时,要注意修改其中一个 ...

  3. jsonp小案例

    jsonp详解 例子:

  4. linux iostat 性能指标说明(转)

    iostat属于sysstat软件包.可以用yum install sysstat 直接安装. 备注: 如果%iowait的值过高,表示硬盘存在I/O瓶颈, %idle值高,表示CPU较空闲, 如果% ...

  5. 3-51单片机ESP8266学习-AT指令(学会刷固件)

    前言:体验一下刷固件(给单片机更新程序) 上一篇链接  http://www.cnblogs.com/yangfengwu/p/8757036.html 源码链接:https://pan.baidu. ...

  6. js倒计时,页面刷新时,不会从头计时

    最近不忙,瞎鼓捣...哈哈 这里利用了H5的本地存储 localStorage,取秒数直接用了php的time()方法,就懒得用js取了. 把第一次访问页面时的时间存在客户端,然后再刷新的时候,比较用 ...

  7. word导入导出自定义属性列表

    Sub ExportCustom() ' ' ExportCustom 宏 ' 导出自定义属性到custom.txt ' Dim lFileNumber As Long Dim sFilePath A ...

  8. 1.5《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——清屏

    使用命令行时,使用clear命令清除屏幕非常方便: $ clear 键盘简写为^L.(Ctrl + L) 同样地,使用完终端当前窗口或标签页,使用exit命令退出进程: $ exit 键盘简写为^D ...

  9. c# Findwindow sendMessage

    using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServi ...

  10. libgdx学习记录24——九宫格NinePatch

    NinePatch用于图片纹理拉伸显示.当图片拉伸时,4个角不会拉伸,而只有中间的部分会拉伸,适合做圆角矩形类的Button. 简单示例: package com.fxb.newtest; impor ...