产生N个不重复的随机数的快速算法
2017-01-23 14:14
127 查看
写一段生成随机数的东西,需要用到产生N个“不重复”的随机数算法,研究了半天,找到一种快速的解决办法:
[java] view
plaincopy
int startArray[] = {0,1,2,3,4,5,6,7,8,9};//seed array
int N = 10;//随机数个数
int resultArray[] = new int [10];//结果存放在里面
for(int i = 0; i < N; i++)
{
int seed = random(0, startArray.length - i);//从剩下的随机数里生成
resultArray[i] = startArray[seed];//赋值给结果数组
startArray[seed] = startArray[startArray.length - i - 1];//把随机数产生过的位置替换为未被选中的值。
}
相关文章推荐
- 产生N个不重复的随机数的快速算法
- 产生N个不重复的随机数的快速算法
- 产生个N个不重复随机数数的快速算法
- 产生N个不重复的随机数的快速算法
- 产生N个不重复的随机数的快速算法
- 产生N个不重复的随机数的快速算法
- 产生N个不重复的随机数的快速算法
- 产生一定范围内的不重复随机数
- PHP产生不重复随机数的5个方法总结
- Java产生900个1到1000不重复的随机数
- Swift - 产生不重复数字的随机数生成器
- 一种算法思想:关于产生m个n范围内的不重复随机数(m<=n)
- C++产生不重复的随机数
- Asp.net 产生无重复ID 年月日+三位随机数
- 产生随机数(不重复)
- 产生不重复随机数
- java产生不重复的随机数
- 产生不重复随机数
- 【VBA研究】VBA编程产生不重复随机数
- php 产生不重复的随机数