Java实现生成n个不重复的随机数
本文实例为大家分享了Java实现生成n个不重复的随机数的具体代码,供大家参考,具体内容如下
需求:
根据min和max,生成n个不重复的随机数。(注:范围[min,max],n<=(max-min+1))
思路:
0)、把从min到max的可能出现的数字全部放进一个候选List;
1)、随机生成索引index(0<=index<=(list.size()-1));
2)、根据index从List中取出一个数,list.get(index),并移除这个元素;
代码如下:
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Random;
publicclassMyRandom{
/**
*根据min和max随机生成一个范围在[min,max]的随机数,包括min和max
*@parammin
*@parammax
*@returnint
*/
publicintgetRandom(intmin,intmax){
Randomrandom=newRandom();
returnrandom.nextInt(max-min+1)+min;
}
/**
*根据min和max随机生成count个不重复的随机数组
*@parammin
*@parammax
*@paramcount
*@returnint[]
*/
publicint[]getRandoms(intmin,intmax,intcount){
int[]randoms=newint[count];
ListlistRandom=newArrayList();
if(count>(max-min+1)){
returnnull;
}
//将所有的可能出现的数字放进候选list
for(inti=min;i<=max;i++){
listRandom.add(i);
}
//从候选list中取出放入数组,已经被选中的就从这个list中移除
for(inti=0;i
小编再为大家分享一段:java产生10个不同随机数的代码:
packageexercise03_jdknews;
importjava.util.Random;
importjava.util.Vector;
/**
*获取10个1-20之间的随机数,要求不能重复
*
*@authorlgt
*
*/
publicclassRandomNumberNoRepeat{
publicstaticvoidmain(String[]args){
//创建一个产生随机数的对象
Randomr=newRandom();
//创建一个存储随机数的集合
Vectorv=newVector();
//定义一个统计变量
intcount=0;
while(count<10){
intnumber=r.nextInt(20)+1;
//判断number是否在集合中存在
if(!v.contains(number)){
//不在集合中,就添加
v.add(number);
count++;
}
}
//遍历输出
for(inti:v){
System.out.println(i);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。