算法一:
/*要求生成十个不相同的随机数!!!
*/
public class NoSameRandom {
public static void main(String args[]) {
int n = 10;
int a[] = new int[n];
for (int i = 0; i < n; i++) {
a[i] = (int) (Math.random() * 10); // 生成0-9的随机整数
for (int j = 0; j < i; j++) {
if (a[j] == a[i]) {
i--; // i--这在的妙用!!!
break;
}
}
}
for (int i = 0; i < n; i++) {
System.out.print(" " + a[i]);
}
}
}
算法二:
//思路不同,本程序用了while循环,经典!!!
public class NoSameRandom2 {
public static void main(String args[]) {
int array[] = new int[10];
int i = 0;
boolean flag = true;
int counter = 0;
while (i < 10) {
flag = true;// 此句必须写,否则死循环!!!
int k = (int) (Math.random() * 10);
for (int j = 0; j < i; j++) {
if (k == array[j]) {
flag = false;
counter++;// 记录生成相同随机数的次数
break;
}
}
if (flag) {
array[i] = k;
i++;
}
}
for (i = 0; i < 10; i++)
System.out.print(" " + array[i]);
System.out.println("\nCounter=" + counter);
}
}