当前位置: 代码迷 >> Eclipse >> 那位大侠可以帮小弟写一个用JAVA随即产生几个数的程序,出现的数不能重复,多谢
  详细解决方案

那位大侠可以帮小弟写一个用JAVA随即产生几个数的程序,出现的数不能重复,多谢

热度:95   发布时间:2016-04-23 14:28:19.0
那位大侠可以帮小弟写一个用JAVA随即产生几个数的程序,出现的数不能重复,谢谢!
比如1到10,这组数随即产生5个数   不能重复。再次谢谢。

------解决方案--------------------
//我的大概想法 如下
Set set = new AbstractSet();//Set接口不支持值重复 具体用哪个Set类合适 你可查下API
while(set.size() <=5){//取5个后结束
set.add(Math.random.nextInt(10));//取5个放入,重复的将不会被放入
}
------解决方案--------------------
public class C {
// public void getAdd() {
// System.out.println();
// }
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int total=2000000;
int g=1000;
int f;
int a[]=new int[1000];
int k=0;
L1:for(int i=1000;i> 1;i--,k++){
Random rnd = new Random();
f=rnd.nextInt(total/g);
if(k==0){
total=total-f;
g=g-1;
a[k]=f;
System.out.println(f);
} else {
for (int j = 0; j < k; j++) {
if (f == a[j]) {
i=i+1;
k=k-1;
continue L1;
}else if(f <=1){
i=i+1;
k=k-1;
continue L1;
}
}
total = total - f;
g = g - 1;
a[k]=f;
System.out.println(f);
}
}

System.out.println(total);

}

}
------解决方案--------------------
用Math.random()函數應該可以實現這個功能!~
------解决方案--------------------
Random rand = new Random();
int i = rand.nextInt();
System.out.println(i);
System.out.println( "the frist method ");
int n =10;
i= rand.nextInt(n+1);
System.out.println(i);
System.out.println( "the second method ");
long seed = rand.nextLong();
rand = new Random(seed);
Random rand2 = new Random(seed);
System.out.println(rand2.nextLong());

基本思路..上面那位写得不错.
------解决方案--------------------
Math.radom();
------解决方案--------------------
Random rand = new Random();
------解决方案--------------------
Set <Integer> s = new HashSet <Integer> ();
while (s.size() < 5){
int nextInt = new Random().nextInt(10);
s.add(nextInt);
}
------解决方案--------------------
Math.radom()即可实现.
  相关解决方案