生成count个[0-n)不重复的随机数
2024-08-30 21:29:08
代码来自:https://www.cnblogs.com/ningvsban/p/3590722.html,感觉实现的方式不错(做了一点小小修改)
public static ArrayList getDiffNo(int count, int n){
// 生成count个[0-n) 不重复的随机数,左开右闭
// list 用来保存这些随机数
ArrayList list = new ArrayList();
Random rand = new Random();
boolean[] bool = new boolean[n];
int num = 0;
for (int i = 0; i < count; i++) {
do {
// 如果产生的数相同继续循环
num = rand.nextInt(n);
} while (bool[num]);
bool[num] = true;
list.add(num);
}
return list;
}
测试:
for (int i = 0; i < 10; i++) {
System.out.println(getDiffNo(5, 20));;
}
结果:
[4, 0, 8, 9, 13]
[6, 13, 8, 10, 14]
[16, 6, 17, 12, 19]
[3, 10, 13, 4, 14]
[10, 0, 1, 5, 19]
[1, 14, 5, 11, 6]
[1, 3, 5, 9, 18]
[0, 5, 10, 4, 7]
[4, 5, 19, 10, 16]
[6, 13, 11, 3, 18]
最新文章
- [转]ASP.NET Core 中间件详解及项目实战
- JS事件对象与事件委托
- Spring MVC 急速集成 Shiro 实录
- R-处理数据对象的实用函数
- php 以图搜图
- 【GoLang】GoLang 微服务、开源库等参考资料
- redhad借用CentOs yum 安装
- 转:Nginx配置指令location匹配符优先级和安全问题
- Git教程(8)Git几种工作方式
- HDU1862EXCEL排序
- Android 学习手札(二) 活动(Activity)组件
- VisualStudio.DTE 对象可以通过检索 GetService() 方法
- BZOJ 3097: Hash Killer I【构造题,思维题】
- timeit模块
- Kali学习笔记44:SQLMAP
- #12 Python函数
- 题解-APIO2010 特别行动队
- php核心纪要 整理
- RedHat Enterprise Linux7.0安装Oracle12c
- apache与weblogic 的整合