【php如何实现不重复的随机数】教程文章相关的互联网学习教程文章

PHP基于自增数据如何生成不重复的随机数示例

本文主要介绍了PHP基于自增数据生成不重复的随机数的相关内容,分享出来供大家参考学习,下面多说无益 直接上代码: 关键点在于生成的自增数据位数控制位数控制在于两个地方 1、 $base 基数组 如果是8位这个数组必须是8位 2、 $i 自增数,自增数不能超过8位数当前简单分析的结果就是以上。大家如果是全局不重复,还是建议使用uuid之类的比较合适。 示例代码:function swap($n,$base) { $mask = 19; //1 + 2 + 16$n = in...

PHP 生成N个不重复的随机数

起因: 有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空。那么你会如何填补这个漏子? 当然向上级反映情况。但是我们这里讨论的是技术,就是需要生成1-25之间的16个不重复的随机数,去填补。具体怎么设计函数呢?将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。 程序如下:代码如下: <?php /* * arr...

PHP生成指定长度随机数最简洁的方法

刚才在写短信验证码模块,需要用到指定位数的随机数,然后网上一找发现太可怕了这么简单的事情竟然用了好几十行多个循环嵌套……看来没有好脑仁儿真的不适合当程序员。 自写了一行版本: function generate_code($length = 4) {return rand(pow(10,($length-1)), pow(10,$length)-1); }为了便于理解,同时也为了这篇水文可以凑点字数,这是多行版:function generate_code($length = 4) {$min = pow(10 , ($length - 1));$max = po...

php生成N个不重复的随机数实例

有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空。那么你会如何填补这个漏子?当然向上级反映情况。但是我们这里讨论的是技术,就是需要生成1-25之间的16个不重复的随机数,去填补。具体怎么设计函数呢?将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。程序如下: 代码如下:<?php/** array unique_r...

php生成随机数或者字符串的代码

$len表示长度,代码如下: 代码如下:/** * 产生随机字符串 * * 产生一个指定长度的随机字符串,并返回给用户 * * @access public * @param int $len 产生字符串的位数 * @return string */ function randstr($len=6) { $chars=ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz0123456789-@#~; // characters to build the password from mt_srand((double)microtime()*1000000*getmypid()); // seed the random number generat...

php随机数【代码】

指定数字范围的随机//随机2-32之间的数 mt_rand(2, 32); 自定义数组的随机$colors = [red,yellow,blue,green,brown]; //参数1:随机的数组 //参数2:指定返回多少个随机键名 //返回的是键名 $colorKey = array_rand($colors,1); //通过返回的键获取值 $color = $colors[$colorKey];

解决PHP中不安全的随机数生成

我们在各种Drupal模块上运行Fortify扫描,常见的关键/高结果是“不安全的随机性”.它指出rand()函数不能承受加密攻击. 我的问题-这是一个严重的问题吗?如何在PHP中修复它? 谢谢.解决方法:这个问题的答案完全取决于您使用rand()调用结果的结果. 如果您将它们用于加密密钥之类的东西,其中工具的安全性取决于随机数的随机性,那么,是的,这是一个严重的问题.在那种情况下,您不应该调用rand()或mt_rand(),因为它们都不产生足够随机以用于...

字符串结尾可以包含随机数时的PHP字符串比较【代码】

我需要使下面的PHP工作.我基本上需要获取存储在$sshCommandResponseString中的字符串,并检查它是否包含4个possibble字符串中的1个.start: Job is already running: mysql mysql start/running, process 8019 mysql stop/waiting mysql start/running, process 8348 stop: Unknown instance: mysql start/running, process 8693最后3个字符串以4位数字结尾,该数字始终是不同的值.因此,我无法像下面的函数那样执行简单的if / else检查...

如何在PHP中生成超过32位限制的随机数?

在其他语言中,我会分几部分生成它并将其存储在字符串中,但是使用PHP时,您无法选择数据类型,因此该类型不起作用,它会自动设置为整数,然后只能存储最大整数大小. 有什么解决办法吗?解决方法:是的,您可以获取一些随机数据(例如,从/ dev / urandom或openssl_random_pseudo_bytes). 然后使用例如将数据转换为其十进制表示形式bcmath或gmp.有关如何执行的操作,请参见this answer.

PHP如何获取与数组值不同的随机数【代码】

例:我有3个值的数组:0 = 1 1 = 4 2 = 5我想得到一个随机数$random = rand(1, 5);但是我需要获取一个不同于数组值的数字.我需要它返回2或3.解决方法:这应该为您工作: (这里我创建了一个范围,从该范围中您将获得range()的随机数.然后,我将不再使用array_diff()来删除这些您不想要的数字.最后,您可以简单地使用array_rand()获得一个随机键/数字)<?php$blacklist = [1, 4, 5];$range = range(1, 5);$randomArray = array_diff($rang...

PHP唯一随机数【代码】

什么是生成1到10之间的7个唯一随机数的好方法.我不能有任何重复.我可以写一大堆PHP来做这个(使用rand()并将使用过的数字推送到数组上)但必须有一个快速的方法来做到这一点. 任何建议都会很棒.解决方法:简单的单线程:print_r(array_rand(array_fill(1, 10, true), 7));

如何在PHP中选择随机数但具有正态概率分布?【代码】

在php中,我如何生成一个随机数,假设具有特定均值和标准devaition的正态分布?解决方法: function nrand($mean, $sd){$x = mt_rand()/mt_getrandmax();$y = mt_rand()/mt_getrandmax();return sqrt(-2*log($x))*cos(2*pi()*$y)*$sd + $mean; }

使用PHP在[min – max]范围内的随机数【代码】

有没有办法根据最小值和最大值生成一个随机数? 例如,如果min为1且最大值为20,则应生成1到20之间的任何数字,包括1和20?解决方法: <?php$min=1;$max=20;echo rand($min,$max); ?>

php – 生成一个N位随机数【代码】

我想使用PHP mt_rand()函数生成一个6位数的随机数. 我知道PHP mt_rand()函数只需要2个参数:最小值和最大值. 我怎样才能做到这一点?解决方法:像这样的东西?<?php $a = mt_rand(100000,999999); ?>或者这个,那么在第一个例子中第一个数字可以是0,它只能是1到9for ($i = 0; $i<6; $i++) {$a .= mt_rand(0,9); }

php – 生成随机数而不重复【代码】

我正在构建一个网站,每次刷新页面时都会随机显示一个yelp列表. yelp搜索api返回数组中的20个列表.现在,我正在使用PHP的函数rand(0,19)在每次刷新页面时生成一个随机列表($businesses [rand(0,19)]). 有人可以让我使用更智能的方法进行随机化吗?我想在重复之前显示所有20个列表.处理此问题的首选方法是什么? 以下答案不起作用,因为每次刷新页面时都会重新创建数字.我猜我需要存储我已使用过的数字?$numbers = range(0, 19);shuff...