PHP随机数函数rand()与mt_rand()的讲解


Posted in PHP onMarch 25, 2019

PHP中rand()与mt_rand()都是用于产生一个指定范围内单独随机数的函数,如果需要产生多个不重复的随机数,请参考:PHP生成指定范围内的N个不重复的随机数。

既然他们都是用于产生一个随机数,那么他们有什么区别呢?

rand() 函数默认使用 libc 随机数发生器,很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且效率很低;mt_rand() 则是用了 Mersenne Twister 中已知的特性作为随机数发生器,它产生随机数值的平均速度比 libc 提供的 rand() 快四倍。所以在PHP中mt_rand()函数是非正式用来替换rand()的。

语法:

rand(min,max)
mt_rand(min,max)

min,max 皆为可选,规定随机数产生的范围。

如果没有提供可选参数 min 和 max,则返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 1 到 100(包括 1 和 100)之间的随机数,用 rand(1, 100) 或 mt_rand(1,100)。

注: 自 PHP 4.2.0 起,PHP产生随机数都不再需要用 srand() 或 mt_srand() 函数产生随机种子,已经会自动完成。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
两个开源的Php输出Excel文件类
Feb 08 PHP
基于pear auth实现登录验证
Feb 26 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
PHP中数组的分组排序实例
Jun 01 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
php绘制圆形的方法
Jan 24 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
Oct 15 PHP
php回调函数处理数组操作示例
Apr 13 PHP
php微信扫码支付 php公众号支付
Mar 24 #PHP
PHP实现支持CURL字符串证书传输的方法
Mar 23 #PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 #PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 #PHP
PHP使用OB缓存实现静态化功能示例
Mar 23 #PHP
Laravel如何自定义command命令浅析
Mar 23 #PHP
PHP使用mysqli同时执行多条sql查询语句的实例
Mar 22 #PHP
You might like
用PHP函数解决SQL injection
2006/10/09 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
php实现每日签到功能
2018/11/29 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
python基础教程之常用运算符
2014/08/29 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
简单的命令查看安装的python版本号
2020/08/28 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
Python基于execjs运行js过程解析
2020/11/27 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
大学生未来职业生涯规划书
2014/02/15 职场文书
擅自离岗检讨书
2014/09/12 职场文书
单位证明范文
2015/06/18 职场文书
教师研修随笔感言
2015/11/18 职场文书
oracle重置序列从0开始递增1
2022/02/28 Oracle