生成一定数量的不重复随机数
/** array unique_rand( int $min, int $max, int $num )* 生成一定数量的不重复随机数* $min 和 $max: 指定随机数的范围* $num: 指定生成数量* 说明:生成随机数时用了 mt_rand() 函数。这个函数生成随机数的平均速度要比 rand() 快四倍。去除数组中的重复值时用了“翻翻法”,就是用 array_flip() 把数组的 key 和 value 交换两次。这种做法比用 array_unique() 快得多。返回数组前,先使用 shuffle() 为数组赋予新的键名,保证键名是 0-n 连续的数字。若不进行此步骤,可能在删除重复值时造成键名不连续,不利于遍历。*/function unique_rand($min, $max, $num) {$count = 0;$return = array();while ($count < $num) {$return[] = mt_rand($min, $max);$return = array_flip(array_flip($return));$count = count($return);}shuffle($return);return $return;}
// 测试$arr = unique_rand(1111, 9999, 16);sort($arr);$result = '';for($i=0; $i < count($arr);$i++){$result .= $arr[$i].',';}$result = substr($result, 0, -1);echo $result;
转载于:https://www.cnblogs.com/phpfensi/p/4643049.html
生成一定数量的不重复随机数相关推荐
- PHP高效生成一个不重复随机数
PHP生成一个不重复随机数组的封装方法 /* * array unique_rand( int $min, int $max, int $num ) * 生成一定数量的不重复随机数 * $min 和 ...
- php rand 重复,php如何使用rand生成不重复随机数
php使用rand生成不重复随机数的方法:首先为数组的每个数字按其下标顺序赋值:然后开始取范围[ i,$num-1 ]范围内的随机数[$rand],并将获取到的随机数[$rand]作为数组中当前位置: ...
- 生成一定数量的随机数,并且不重复的方法
2019独角兽企业重金招聘Python工程师标准>>> /*** +--------------------------------------------------------- ...
- JAVA生成不重复随机数算法
一个不错的算法,很简单,但有效.不过如果范围比较大,则占用内存大,就不推荐使用了.个人感觉1000个以内的就可以考虑.这东西也许你早就知道了,但我依然惊叹算法的力量. 看代码 import java. ...
- C#生成不重复随机数列表
C#生成不重复随机数列表 C#生成不重复(随机数 http://www.jbxue.com/tags/suijishu.html)列表实例的代码. 例子: /// <summary> ...
- Java生成不重复随机数,双色球程序Demo
Java生成不重复随机数,双色球Demo 设计一个程序,可以产生福利彩票的双色球中奖号码. 规则:6红球,1个蓝球 6个红球范围:1-33 1个蓝球:1-16 代码 import java.util. ...
- (原创)按照一定的格式生成一定数量的随机数的例子
在很多时候需要按照一定的格式生成一定数量的随机数,下面是实现方法 下面是自己写的类 public class MyRandom { private string _strin; privat ...
- java contains_Java基础教程|生成不重复随机数 java
生成不重复随机数 java java生成随机数可以使用Math类中的方法.不随机可以使用List进行判断存储.(推荐教程:java教程 ) 1 . 调用java.lang下面Math类中的random ...
- 算法--生成m个指定范围的不重复随机数的三种方法分析(Java实现)
Q题目 如何产生m个在0-N范围内的无重复的随机数(不包含N) A解法 2.1 常见解法有两种: 1.间接获取--采用随机下标从已实例化的数组中取元素 2.直接获取随机数--然后一一排除 2.2 间接 ...
最新文章
- CSS属性之字体(Font)
- myeclipse智能提示设置
- java rhino import_java调用javascript :js引擎rhino
- 【Linux】统信UOS桌面壁纸右下角的统信UOS水印怎样去掉
- Xcode中常见的错误,警告和解决方法
- 组装台式电脑配置清单_萌新攒机必备!多价位台式电脑配置清单!
- 数据可视化基本套路总结
- 广告投放媒体发展简史
- IDEA配置Android-SDK
- 神经网络发展的三个阶段,人工神经网络的发展
- 综论数据库防火墙的自我修养系列之一:高可用性
- MySQLyog的使用
- python学习__tsv文件写入多余空行问题
- Android Studio Shape属性(上)
- 男闺蜜下载 v1.6.2 安卓版
- Java--第1天--日期(一)
- android 开发英语单词统计
- Eigen 对矩阵的每个元素取绝对值
- LeetCode221117_125、904. 水果成篮
- 「黑镜」回归!剧中的杀戮机械狗或在两年内来到你身边
热门文章
- python 随机请求头_为了爬虫换个头,我用python实现三种随机请求头方式!
- 递归法:走楼梯; 旋转数组的最小数字(递归法和改进二分法)
- static_cast与dynamic_cast类型转换
- bzoj 4956: [Wf2017]Secret Chamber at Mount Rushmore(最短路)
- python找到列表中最大和最小的数
- hls和modelsim联合仿真生成波形找不到wlf文件
- zynq文档学习之GPIO寄存器基本操作
- @Transactional之Spring事务深入理解
- 7.11 其他面向对象设计原则2:能用组合的地方,不要用继承
- SQL数据去重复 Distinct 和 row_number() over()