关于生成Java不重复的随机数:
import java.util.*;
public class Test...{
public static void main(String[] args)...{
//生成 [0-n) 个不重复的随机数
/ st 用来保存这些随机数
ArrayList list = new ArrayList();
int n = 10;
Random rand = new Random();
boolean[] bool = new boolean[n];
int num =0;
for (int i = 0; i<n; i++)...{
do...{
//如果产生的数相同继续循环
num = rand.nextInt(n);
}while(bool[num]);
bool[num] =true;
list.add(num);
}
System.out.println (list);
}
public class Test
{
public static void main(String[] args)
{
int[] arr = new int[10];
for (int i = 0; i < 10; i++)
{
arr[i] = (int) (Math.random() * 40) + 1;
for (int j = 0; j < i; j++)
{
if (arr[j] == arr[i])
{
i--;
break;
}
}
}
for (int i = 0; i < 10; i++)
System.out.print(arr[i] + " ");
}
}
b.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
int n=40;
int[] num = new int[n];
for(int i=0;i <num.length;i++)
num[i] = i+1;
int[] arr = new int[10];
for(int i=0;i <arr.length;i++)
{
int r =(int)(Math.random()*n);
arr[i]=num[r];
num[r]=num[n-1];
n--;
}
for(int i=0;i <arr.length;i++)
System.out.print(arr[i]+" ");
}
}
c.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
LinkedList <Integer> myList= new LinkedList <Integer> ();
int n=40;
for(int i=0;i <n;i++)
myList.add(i+1);
int[] arr = new int[10];
for(int i=0;i <arr.length;i++)
{
arr[i]=myList.remove((int)(Math.random()*n));
n--;
}
for(int i=0;i <arr.length;i++)
{
System.out.print(arr[i]+" ");
}
}
}
d.
Java code
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Set <Integer> mySet = new LinkedHashSet <Integer> ();
while(mySet.size() <10)
{
mySet.add((int)(Math.random()*40+1));
}
for(Integer i:mySet)
{
System.out.print(i+" ");
}
}
}
方法一:
在一个待选数组中随机产生一个数,然后把他放到待选数组的最后,然后从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;
}
分享到:
相关推荐
直接运行main即可,参数为数字范围 比如10 运行后会输出9,3,0,7,2,8,4,1,5,6,
该代码采用面向对象语言实现不重复的随机数,用四种方法。谢谢参考
java代码产生不重复的随机数,有用处,可以参考!
巧用Java实现得到任意位永不重复的随机数,很经典的代码!
java 不重复的随机数序列 java 不重复的随机数序列
利用hashset产生不重复随机数的函数,附含测试数据; 调用方法 int[] arr=noDup(max,num),max为最大的数,num为要产生的随机数个数
java生成十个不重复的随机数,要求不重复
Java中不重复随机数的生成与分析
这个随机数算法可用于随机组题。java语言。
多种生成不重复随机数的java 源代码,在线考试系统组卷系统中若需要随机抽题技术,这些代码可能会帮上忙!
在Struts+Spring+Mybatis基础上写的比较灵活的产生随机数,可以用到用户编号随机产生,其中验证了随机数不会重复产生。
主要介绍了Java实现生成n个不重复的随机数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
使用java语言,随机出不重复的随机数放进数组里。
生产不重复19位随机数,测试1000000数据没重复
你中过奖么?利用java实现一个35选7的彩票中奖号码产生程序...随机产生7个1至35之间(包括1和35)的不重复整数,并输出。随机数生成方法见JDK API的java.lang.Math类的random函数。(练习循环与break、continue、数组)
(java)指定范围的,不重复的随机数(java)指定范围的,不重复的随机数
主要介绍了JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 不重复的随机数方案2:297毫秒 但是方案1采用了slice方法,此方法重新生成数组,会大量占用内存和cpu运算, 效率很低,所以改良一下,从原始数组取出一个数, 然后...
随机产生6个不重复的随机数,并且输出到HTML页面当中
使用了ArrayList和简单的循环来达到目的。用输入数字作为触发器。