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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。