一直在用老年机玩打鼹鼠的游戏,然后就想鼹鼠出现的个数,位置用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 次数很多,故会做很多无用功,效率没有第一种高