介绍
这篇文章主要介绍在PHP中生成随机数的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
第一种方法用mt_rand ()
function GetRandStr(长度){ $ str=& # 39; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789& # 39;; len=strlen (str)美元1美元; $ randstr=& # 39; & # 39;; (我=0;i<美元;长度;美元美元我+ +){ $ num=mt_rand (0, len美元); randstr 美元。=,str美元(美元num); } return randstr美元; } 美元数量=GetRandStr (6); echo 美元数量;
第二种方法(最快的)
function make_password (=, length 美元,8,) { ,//密码字符集,可任意添加你需要的字符 ,chars 美元;=,阵列(& # 39;一个# 39;,,& # 39;b # 39;,, & # 39; c # 39;,, & # 39; d # 39;,, & # 39; e # 39;,, & # 39; f # 39;,, & # 39;舌鳎# 39;,,& # 39;h # 39;,, ,& # 39;我# 39;,,& # 39;强生# 39;,,& # 39;k # 39;,, & # 39; l # 39; & # 39;猴# 39;,,& # 39;n # 39;,, & # 39; o # 39;,, & # 39; p # 39;,, & # 39;提问# 39;,,& # 39;" # 39;,,& # 39;& # 39;,, ,& # 39;t # 39;,, & # 39; u # 39;,, & # 39; v # 39;,, & # 39; w # 39;,, & # 39; x # 39;,, & # 39; y # 39; & # 39; z # 39;,, & # 39;一个# 39;,,& # 39;b # 39;,, & # 39; c # 39;,, & # 39; d # 39;,, ,& # 39;e # 39;,, & # 39; f # 39;,, & # 39;舌鳎# 39;,,& # 39;h # 39;,, & # 39;我# 39;,,& # 39;强生# 39;,,& # 39;k # 39;,, & # 39; l # 39; & # 39;猴# 39;,,& # 39;n # 39;,, & # 39;阿,,, ,& # 39;p # 39;,, & # 39;提问# 39;,,& # 39;" # 39;,,& # 39;& # 39;,,& # 39;t # 39;,, & # 39; u # 39;,, & # 39; v # 39;,, & # 39; w # 39;,, & # 39; x # 39;,, & # 39; y # 39; & # 39; z # 39;,, ,& # 39;0 & # 39;,,& # 39;1 & # 39;,,& # 39;2 & # 39;,,& # 39;3 & # 39;,,& # 39;4 & # 39;,,& # 39;5 & # 39;,,& # 39;6 & # 39;,,& # 39;7 & # 39;,,& # 39;8 & # 39;,,& # 39;9 & # 39;,,& # 39;! & # 39;,, ,& # 39;@ # 39;& # 39;# & # 39;,,& # 39;$ & # 39;,,& # 39;% & # 39;,,& # 39;^ & # 39;,& # 39;,& # 39;,& # 39;* & # 39;,,& # 39;(& # 39;,& # 39;)& # 39;,,& # 39;& # 39;,,& # 39;_ # 39;,, ,& # 39;[& # 39;,& # 39;]& # 39;,,& # 39;{& # 39;,& # 39;}& # 39;,,& # 39;& lt; & # 39;, & # 39; & # 39;,, & # 39; ~ & # 39;,, & # 39;“& # 39;, & # 39; + & # 39;,, & # 39;=& # 39;,, & # 39;, & # 39;,, ,& # 39;强生# 39;,,& # 39;;& # 39;,& # 39;:& # 39;,& # 39;/& # 39;,,& # 39;? & # 39;,& # 39;| & # 39;); ,//在,chars 美元;中随机取,length 美元;个数组元素键名 ,keys 美元;=,用于($字符,长度美元),, ,password 美元;=,& # 39;& # 39;; ,($小姐:=,0;,美元小姐:& lt;,长度;美元,美元我+ +) ,{ ,//将,length 美元;个数组元素连接成字符串 password 美元。=,$字符[键[$ i]]美元; ,} 美元,return 密码; }
第三种取当时时间戳
function get_password (=, length 美元,8,), { ,str 美元;=,substr (md5(()), 0,,美元长度);//md5加密,时间()当前时间戳 ,return str美元; }
第四种打乱字符串
function getrandstr () { $ str=& # 39; ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890& # 39;; $ randStr =,作用是(str);//打乱字符串 randStr美元$兰德=,substr (0, 6);//substr(字符串、开始、长度),返回字符串的一部分 return 美元货币兰特; }
第五种开始创建验证码(直接用函数生成,比较方便快捷)
code 美元;=,兰德(10000,,99999);
php mt_rand生成0 ~ 1随机小数的效果比较
lcg_value说明
浮动lcg_value (void)
<代码> lcg_value() 代码>返回范围为(0,1)的一个伪随机数。本函数组合了周期为2 ^ 31 - 85和2 ^ 31 - 249的两个同余发生器。本函数的周期等于这两个素数的乘积。
返回:范围为(0,1)的伪随机数。
& lt; php ? (我=0;美元,美元i<5;,我+ +美元){ .PHP_EOL, echo lcg_value (); } ?在
输出:
0.11516515851995 0.68275174031189 0.064684551575297
引用>
0.55730746529099
0.70215008878091两种生成0 ~ 1随机小数方法进行比较
1。执行时间比较
执行万10次基于<代码> mt_rand() 代码>与<代码> mt_getrandmax() 代码>算法的运行时间
& lt; php ?/* * 0 ~ 1,*生成随机小数 ,* @param Int 分美元 美元,* @param Int  max ,* @return 浮动 ,*/function randFloat (min=0美元,美元max=1) { +,return min 美元;mt_rand ()/mt_getrandmax (), *, (max - min美元); } ,//,获取microtime function get_microtime () { ,列表(sec)美元购买美元,,,=,爆炸(& # 39;,& # 39;,,()); ,return (浮动)usec 美元;+,sec美元(浮动); } ,//,记录开始时间 $ starttime =, get_microtime (); ,//,执行万10次获取随机小数 (我=0;美元,美元i在PHP中生成随机数的示例