java 产生多个不重复的随机数

来源:互联网 发布:网络分层模型详解 编辑:程序博客网 时间:2024/05/20 09:25


  一直在用老年机玩打鼹鼠的游戏,然后就想鼹鼠出现的个数,位置用java写出来试一下。这里只简单写从n个数中取m个不重复的随机数


方法一:用数组

public void createRanArr(int n){int[] ranArr=new int[n];int[] seed={0,1,2,3,4,5,6,7,8};Random random=new Random();for(int i=0;i<=n;i++){int j=random.nextInt(9-i);ranArr[i]=seed[j];seed[j]=seed[8-j];}}

此种方法,从0~8中取n个随机数,但是一旦选取的范围比较大则比较麻烦,数组开辟空间大


方法二:用HashSet

public HashSet<Integer> createRandom(int n,int m){Random random=new Random();HashSet<Integer> set=new HashSet<Integer>();while(set.size()<m){int number=random.nextInt(n);set.add(number);}return set;}

此种方法能实现大范围选取随机数,但是得到无效 number  次数很多,故会做很多无用功,效率没有第一种高






0 0