java生成无重复随机数的2种方法
2013-01-17 09:47
615 查看
第一种方法,在一个待选数组中随机产生一个数,然后把他放到待选数组的最后,然后从length-1里随机产生下一个随机数,如此类推
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;
}
该文章转载自网络大本营:http://www.xrss.cn/Dev/JAVA/200742812792.Html
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;
}
该文章转载自网络大本营:http://www.xrss.cn/Dev/JAVA/200742812792.Html
相关文章推荐
- java生成无重复随机数的2种方法
- java中生成无重复随机数的2种方法
- java生成无重复随机数的2种方法
- Java生成随机数的2种示例方法代码
- 生成无重复随机数的2种方法
- JAVA生成给定范围内的不重复的随机数的几种方法
- Java编程实现从给定范围内随机N个不重复数生成随机数的方法小结
- Python编程实现生成特定范围内不重复多个随机数的2种方法
- 生成无重复随机数的2种方法
- 转载:JAVA生成给定范围内的不重复的随机数的几种方法
- 算法--生成m个指定范围的不重复随机数的三种方法分析(Java实现)
- 还有更简单的不重复随机数生成方法吗?
- Java中随机数生成的两种方法,以及math的floor
- Java生成不重复随机数UUID(转)
- java生成6位随机数的5种方法
- java生成不重复的随机数
- java生成随机数的三种方法
- JAVA随机数生成 | Math.random()方法 | 随机生成int、double类型
- JAVA生成随机数(生成给定范围内N个不重复数)
- java生成重复和不重复随机数