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 和 max,mt_rand() 返回 0 到 mt_getrandmax() 之间的伪随机数。
getrandmax() 最大值为:32767
mt_getrandmax() 最大值为:2147483647
提示:自PHP 4.2 开始 随机数发生器有系统自动进行播种。
PHP 常用数学函数
- 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() 的区别的更多相关文章
- 随机函数rand()和srand()
C++中随机函数rand()和srand()的用法 一.rand() 函数名: rand 功 能: 随机数发生器 用 法: int rand(void); 所在头文件: ...
- awk之随机函数rand()和srand()
awk之随机函数rand()和srand() 分类: LINUX 文件: abcdefg ...... 现在想要随机抽取5列组成下面的内容,允许重复: cffab ...... awk -F '' ' ...
- 随机函数rand()与srand()
一.int rand(void); 函数所在的头文件是stdlib.h: 其内部实现线性同除法,不是真正的随机数.通常rand()%x是指在x范围内取模,返回值0-x; 系统默认随机种子是1: 二.v ...
- 认识随机函数rand()和srand(unsigned int )
rand函数 int rand( void ); 函数名: rand 功 能: 随机数发生器 用 法: int rand(void); 所在头文件: stdlib.h 函数说明 : ...
- awk之随机函数rand()和srand() (转)
转自:http://blog.chinaunix.net/uid-10540984-id-2942041.html 文件: 1234567 abcdefg ...... 现在想要随机抽取5列组成下 ...
- 【转】随机函数的rand、srand用法
from:深海的小鱼儿 地址:http://www.cnblogs.com/xmphoenix/archive/2011/04/07/2008622.html 随机函数的rand.srand用法 一& ...
- rand和srand的用法
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明. rand(产生随机数)表头文件: #include<stdlib.h> ...
- 随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题
随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题 问题来源 一位小伙伴在使用 Ueditor 插件时出错,因为用的是 php7.1 ...
- rand()和srand()
C++中rand() 函数的用法 1.rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数. 2.如果你要产生0~99这100个整数中的一个随机整数, ...
- rand()与srand()
1.不用srand()的话 两次运行程序产生的随机数序列相同 2.用srand() 两次运行程序产生的随机数则不同 示例程序: #include<iostream> #include< ...
随机推荐
- zabbix没有frontends目录
去解压缩的源码包中取 # cd /opt/data/src/about_zabbix/zabbix-2.2.3# cp -rv frontends/ /opt/OperMainManager/zabb ...
- QGis C++ 开发之创建临时图层并添加要素
开发环境:Win10 + VS2010 + Qt 4.8.6 + QGis 2.14.4 其实本文实现的功能类似于QGis中“添加文本数据图层”的一个简化版,本文不会涉及到对话框的使用 ...
- JAVA之多线程概念及其几种实现方法优劣分析
1. 多线程 程序:指令集,静态的概念 进程:操作系统调动程序,是程序的一次动态执行过程,动态的概念 线程:在进程内的多条执行路径 Ps:单核的话进程都是虚拟模拟出来的,多核处理器才可以执行真正的多线 ...
- 复习zabbix配置agent过程
1. 创建主机configuration(配置)-->Hosts(主机)-->Create host(创建主机) 不使用proxy --- enabled 2.链接监控模板Templa ...
- day80
昨日回顾 上节回顾: 中间件: -django请求生命周期: -中间件:对全局请求的修改,和全局响应的修改 -process_request:从上往下执行 -process_response:从下往上 ...
- jqgrid 宽度自适应
当jqgrid所在操作区宽度大于了给各列设置宽度之和时,此时表格的宽度未铺满操作区,效果不理想 此时,可以通过配置宽带自适应来现实表格内容自动铺满. 配置属性 shrinkToFit:ture 若要启 ...
- Android Studio com.android.support:percent 导入错误 - 转
看第一行代码(第二版的)书,讲了一个关于PercentFrameLayout和PercentRelativeLayout的部分,书上在build.gradle中导入了com.android.suppo ...
- Python3入门(十一)——IO编程
一.文件读写 python的文件操作和C是兼容的 1.读文本文件 读文件操作如下: f = open("F:/1.txt", "r") data = f.rea ...
- 20155218 Exp1 PC平台逆向破解(5)M
20155218 Exp1 PC平台逆向破解(5)M 1. 掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即"空指令".执行到NOP指令时,CPU什么 ...
- 在ListBoxItem的样式中的button传参,把当前选中项传递到命令的方法
原文:在ListBoxItem的样式中的button传参,把当前选中项传递到命令的方法 前端页面: <Style x:Key="ThumbItemStyle" TargetT ...