您的位置:首页 > 编程语言 > Java开发

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

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

方法一:用数组

public void createRanArr(int n){
int[] ranArr=new int
;
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  次数很多,故会做很多无用功,效率没有第一种高
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: