生成随机不重复数组,菜鸟问题。。。。
private int[] makeNoRepeat(int length){
int [] sss=new int[length];
// System.out.println("length:"+length);
Random rd=new Random();
int i=0;
int temp;
boolean flag=true;
do{
System.out.println("i:"+i);
temp=rd.nextInt(10);
System.out.println("temp:"+temp);
for(int j=0;j<i;j++){
System.out.println("sss["+j+"]:"+sss[j]);
System.out.println(temp==sss[j]);
if(temp==sss[j]){
flag=false;
break;
}
}
if(flag){
sss[i]=temp;
i++;
}
}while(i<length);
return null;
}
执行后就死循环了 大大们帮忙看下把 --------------------编程问答-------------------- private static int[] makeNoRepeat(int length){
int [] sss=new int[length];
// System.out.println("length:"+length);
Random rd=new Random();
int i=0;
int temp;
boolean flag=true;
do{
System.out.println("i:"+i);
temp=rd.nextInt(10);
System.out.println("temp:"+temp);
for(int j=0;j<i;j++){
System.out.println("sss["+j+"]:"+sss[j]);
System.out.println(temp==sss[j]);
if(temp==sss[j]){
flag=false;
break;
}
}
if(flag){
sss[i]=temp;
i++;
}
flag=true;
}while(i<length);
return null;
} --------------------编程问答-------------------- if(flag){
sss[i]=temp;
i++;
}
flag=true;
在这个if后面加上一个flag=true; --------------------编程问答-------------------- 3q 小弟白痴了。。。 --------------------编程问答-------------------- 不重复的数组生成,没必要这么去判断重复,既然不重复,肯定是不相等,不相等,就可以按从小到大生先成数据,然后再打乱顺序就可以了
for example
int[] a = new int[10];--------------------编程问答--------------------
a[i] = (int)(Math.random()*100); //生成第一个数据
for (int i=1; i<a.length; i++) {
a[i] = a[i-1] + (int)(Math.random()*10) + 1; //从小到大随机生成数据
}
for (int i=0; i<a.length; i++) { //打乱顺序
int idx = (int)(Math.random()*a.length); //随机生成一个位置
int t = a[idx];
a[idx] = a[a.length-idx-1]; //交换随机位置和长度-随机位置的两个元素
a[a.length-idx-1] = t;
}
+1 --------------------编程问答-------------------- --------------------编程问答-------------------- 这没有什么难度把。
生成随即数组,可以借助HashSet,先将生成的数添加进hashset,再把hashset转换为数组即可。 --------------------编程问答-------------------- 楼主如果你传递的length参数大于10的话,你的程序还回事死循环啊 --------------------编程问答-------------------- temp=rd.nextInt(10);
最好是用length来确定你随机数的范围吧
temp=rd.nextInt(10 * length + 1)之类的
补充:Java , Java EE