生成无重复随机数的2种方法
来源:互联网 发布:肺 三维重建 软件 编辑:程序博客网 时间:2024/06/05 04:08
public static int[] randoms()
{
Random r = new Random();
int temp1,temp2;
int send[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
int len = send.length;
int returnValue[] = new int[22];
for(int i=0;i<22;i++)
{
temp1 = Math.abs(r.nextInt())% len;
returnValue[i] = send[temp1];
temp2 = send[temp1];
send[temp1] = send[len-1];
send[len-1] = temp2;
len--;
}
return returnValue;
}
}
方法二:还是一个固定的无重复的数组,然后把这个数组随机调换位置,多次之后这个数组就是一个无重复的随机数组了。
public static int[] random2()
{
int send[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
int temp1,temp2,temp3;
Random r = new Random();
for(int i=0;i<send.length;i++) //随机交换send.length次
{
temp1 = Math.abs(r.nextInt())%(send.length-1); //随机产生一个位置
temp2 = Math.abs(r.nextInt())%(send.length-1); //随机产生另一个位置
if(temp1 != temp2)
{
temp3 = send[temp1];
send[temp1] = send[temp2];
send[temp2] = temp3;
}
}
return send;
}
一次测试:
C:/java>java Test
5 7 11 3 6 14 20 21 17 1 10 0 2 4 16 8 12 15 18 9 19 13
18 10 9 13 3 16 14 5 15 12 8 11 4 7 17 0 2 20 1 19 6 21
- java中生成无重复随机数的2种方法
- 生成无重复随机数的2种方法
- java生成无重复随机数的2种方法
- java生成无重复随机数的2种方法
- 生成无重复随机数的2种方法
- java生成无重复随机数的2种方法
- 生成无重复的随机数
- 生成无重复的随机数
- 生成无重复的随机数
- 谈谈无重复随机数的产生方法
- 谈谈无重复随机数的产生方法
- 无重复随机数的产生方法
- 一个生成不重复随机数的方法
- 一个生成不重复随机数的方法
- c#生成不重复随机数的方法
- C#生成不重复随机数的方法
- 随机生成自定义数量的无重复的随机数
- 在较大范围内生成大量的无重复的随机数
- VC项目文件说明:
- 最高经典背景音乐
- 看来我是很聪明的
- aspnet_compiler
- 影响35岁前成功的好习惯与坏习惯
- 生成无重复随机数的2种方法
- EJB 最佳实践: 用值对象加速您的 RMI 事务
- CIO领导力调查:只有8%的CIO角色正确
- 成员函数指针和其他类型的强制转换,使用一般指针调用成员函数
- JavaScript的String对象
- informix批量数据文件导入库sh程序
- KMP算法真的搞死人,终于搞懂了
- FormatString
- Linux 汇编器:对比 GAS 和 NASM