php生成n个不重复的随机数,PHP函数:生成N个不重复的随机数

这篇博客探讨了如何在指定范围内生成一定数量的不重复随机数。作者介绍了使用PHP实现的方法,通过将随机数存入数组并去除重复值来确保唯一性。文中提到了使用mt_rand()函数代替rand()以提高效率,并使用了双数组翻转的方式来快速去重。此外,还提及了在Java中生成不重复随机数的类似思路。
摘要由CSDN通过智能技术生成

思路:将生成的随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。

程序:

/*

* array unique_rand( int $min, int $max, int $num )

* 生成一定数量的不重复随机数

* $min 和 $max: 指定随机数的范围

* $num: 指定生成数量

*/

function unique_rand($min,$max,$num){

$count = 0;

$return_arr = array();

while($count < $num){

$return_arr[] = mt_rand($min,$max);

$return_arr = array_flip(array_flip($return_arr));

$count = count($return_arr);

}

shuffle($return_arr);

return $return_arr;

}

补充说明:

1、生成随机数使用了mt_rand()函数,这个函数比rand()函数快4倍;

2、去除数组重复值时采用了“翻翻法”,就是用array_flip()把数组的key和value交换两次。比用array_unique()快很多。

Java连载81-枚举类型,生成五个不重复的随机数,集合简介

一.枚举类型 1.枚举类型的格式就是enum+枚举类型的名称,可见下面的例子. package com.bjpowernode.java_learning; ​ public class D81_1_ ...

在一定&lbrack;min&comma;max&rsqb;区间,生成n个不重复的随机数的封装函数

引:生成一个[min,max]区间的一个随机数,随机数生成相关问题参考→链接 var ran=parseInt(Math.random()*(max-min+1)+min); //生成一个[min,m ...

生成N个不重复的随机数&lpar;转&rpar;

有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如何填补这个漏子? 当然向上级反映情况.但是 ...

Jmeter生成8位不重复的随机数

jmeter的time函数${__time(,)}  :  默认该公式精确到毫秒级别, 13位数 ${__time(/1000,)}  : 该公式精确到秒级别, 10位数 ${__time(yyyy- ...

Java数组实现随机生成N-M之间不重复的随机数

接收一个整形数组,使用Math.Random每次在规定的数字范围内随机产生数字,然后嵌套for循环依次判断是否有重复值,如果有既外循环变量减一,直到把数组装满为止. /** * 随机生成 N--M的不 ...

PHP CodeBase&colon; 生成N个不重复的随机数

有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如何填补这个漏子? <?php /* ...

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

思路: 将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数. /* * array unique_rand( int $min, int $max, int $num ) * 生 ...

C&num; Random生成多个不重复的随机数万能接口

C#,Radom.Next()提供了在一定范围生成一个随机数的方法,我现在有个业务场景是给其他部门推送一些数据供他们做抽样检查处理,假设我的数据库里面有N条数据,现在要定期给其随机推送数据,我需要先拿 ...

&lbrack;转载&rsqb;&lbrack;记录&rsqb;javascript生成不重复的随机数

参考链接:javascript生成不重复的随机数 项目播放视频,是无序的,有上下两个按钮,所以需要生成1,8不重复的随机数数组,如: ,,,,,,, 然后再split一次,就是数组了. 拿来主义了

随机推荐

nginx&plus;Memcached 缓存设计

单页面缓存方案 单静态页缓存 解决问题场景 常见的缓存设计利用System.Web.Cache 保存在内存内,效率高,可以减轻数据库访问的压力.但是Web除了获取数据之外,还有呈现页面渲染,生成HTM ...

关于Jquery获取Table中td内的内容

$(this).children().eq(1).text()获取的是显示的值$(this).children().eq(1).html()获取的是

之间的所有 ...

svg学习(七)polygon

标签用来创建含有不少于三个边的图形. <?xml version="1.0" standalone="no"?> & ...

RESTful API 设计最佳实践(转)

摘要:目前互联网上充斥着大量的关于RESTful API(为了方便,以后API和RESTful API 一个意思)如何设计的文章,然而却没有一个”万能“的设计标准:如何鉴权?API格式如何?你的API ...

使用Navicat Premium 和PL&bsol;SQL Developer连接Oracl

在64位Win7中使用Navicat Premium 和PL\SQL Developer连接Oracle数据库备忘   最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不 ...

设置tableView的分割线填满cell的方式总结

方式一:cell的底部添加一个UIView 1.在tableViewController的viewDidLoad中取消系统的分割线 // 取消系统的分割线 self.tableView.separat ...

git 合并两个仓库

我有两个仓库,一个是gitbook在写一本 一个是放在github的垃圾,这个是我想要开个人网站,但是做的还是不行https://github.com/lindexi/lindexi.github.i ...

7-27 Codeforces Round &num;499 &lpar;Div&period; 2&rpar;

C. Fly 链接:http://codeforces.com/group/1EzrFFyOc0/contest/1011/problem/C 题型:binary search .math. 题意:总 ...

实用:Git 中的一些常见错误

无论是数据科学家.算法工程师还是普通开发人员,在每个团队协作开发任务中,Git 都是必不可少的版本控制工具,因此掌握它的基本操作十分有必要.但即便是教程满天飞的今天,开发人员在使用 Git 时也还是会 ...

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值