`
leiyonglin
  • 浏览: 50102 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

php随机数rand和mt_rand

    博客分类:
  • php
php 
阅读更多

今天想写个扔骰子并统计点数概率的小程序,使用如下方法生成随机数


最后发现无论进行多少次循环,始终不出现 6个4、6个5 , 6个3和6个6最常出现,不知道这是为什么,最后在手册上找到mt_rand()方法并且不会出现此类问题

 

mt_rand() 使用 Mersenne Twister 算法返回随机整数,mt_rand()是rand()的一个非正式的替代品。

 

说明

 

如果没有提供可选参数 minmax,mt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5, 15)。

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

 

 

 

 

分享到:
评论

相关推荐

    PHP中函数rand和mt_rand的区别比较

    PHP函数rand和mt_rand mt_rand() 比rand() 快四倍 很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数...

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

    PHP中rand()与mt_rand()都是用于产生一个指定范围内单独随机数的函数,如果需要产生多个不重复的随机数,请参考:PHP生成指定范围内的N个不重复的随机数。 既然他们都是用于产生一个随机数,那么他们有什么区别呢? ...

    php中mt_rand()随机数函数用法

    说明:如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 rand_max 之间的伪随机数,例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5,15). 在 3.0.7 之前的版本中,max 的含义是 range,要在这些版本中...

    深入理解PHP中mt_rand()随机数的安全

    在前段时间挖了不少跟mt_rand()相关的安全漏洞,基本上都是错误理解随机数用法导致的。这里又要提一下php官网manual的一个坑,看下关于mt_rand()的介绍:中文版^cn 英文版^en,可以看到英文版多了一块黄色的 Caution ...

    PHP随机数 C扩展随机数

    $rand = mt_rand(1, 28); $str1=substr($str_md5,$rand,6); $rand = mt_rand(1, 28); $str2=substr($str_md5,$rand,6); $rand = mt_rand(1, 28); $str3=substr($str_md5,$rand,6); $code=substr($str1.$str2....

    php 指定范围内多个随机数代码实例

    调用mt_rand()这个方法可以生成随机数字,参数是范围的最小值和最大值,函数会返回最小值和最大值之间的一个随机数字。 要生成真正的随机数,对于计算来说不是一件容易的事。 php中两种方法可以生成随机数,一个...

    MySQL的指定范围随机数函数rand()的使用技巧

    咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数。 而在mysql里,随机数函数rand不能传参,产生的0到1之间的浮点数,...

    php随机数反推

    mt_rand() 产生随机数 随机数种子一样,随机数序列则会完全一相同。 所以知道随机数种子后,就能知道所有随机数序列。(随机数种子 => 随机数序列) 知道随机数后,也能推出随机数种子。(随机数 => 随机数种子 =>...

    [示例][PHP]RandomLib-master生成随机数和随机字符串的PHP库.zip

    通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。RandomLib-master生成随机数和随机字符串的...

    php lcg_value与mt_rand生成0~1随机小数的效果对比分析

    下面小编就为大家带来一篇php lcg_value与mt_rand生成0~1随机小数的效果对比分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    RandomLib-master生成随机数和随机字符串的PHP库.zip

    通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。RandomLib-master生成随机数和随机字符串的...

    一个php生成16位随机数的代码(两种方法)

    分享一个php生成16位随机数的代码,php生成随机数的二种方法。 方法1 复制代码 代码如下: <?php $a = mt_rand(10000000,99999999); $b = mt_rand(10000000,99999999); echo $a.$b; 方法2: <?php $a = range(0...

    true-random-master生成随机数的PHP库.zip

    通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。true-random-master生成随机数的PHP库

    如何在PHP中生成随机数

    第一种方法用mt_rand() function GetRandStr($length){ $str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $len=strlen($str)-1; $randstr=''; for($i=0;$i<$length;$i++){ $num=mt_rand...

    PHP生成随机数的方法实例分析

    通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度。 复制代码 代码如下:function randomkeys($...

Global site tag (gtag.js) - Google Analytics