我遇到了一個問題,在Java中產生6到6之間的隨機數。所有的數字必須是唯一的。當我輸入kolon值爲5時,陣列應該是這樣的:如何使用Java在1到6之間生成6個隨機數?
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
我不希望程序生成相同的兩個數字。這裏有什麼問題?
相關的代碼:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter row quantity: ");
int kolon = input.nextInt();
Integer[][] dizi_asil = new Integer[kolon][6];
for (int i = 0; i < kolon; i++) {
Integer[] dizi = new Integer[6];
for (int j = 0; j < 6; j++) {
dizi[j] = (int) ((Math.random() * 6) + 1);
for (int u = 0; u < 1; u++) {
for (int k = 0; k < j; k++) {
while (dizi[k] == dizi[j]) {
dizi[j] = (int) ((Math.random()* 6) + 1);
u++;
}
}
}
dizi_asil[i][j] = dizi[j];
}
Arrays.sort(dizi_asil[i]);
}
for (int i = 0; i < dizi_asil.length; i++) {
for (int k = 0; k < dizi_asil[i].length; k++) {
System.out.print(dizi_asil[i][k] + "\t");
}
System.out.println();
}
6 1和6之間的唯一號碼不是隨機的。他們將永遠是1,2,3,4,5,6。他們的順序可能是隨機的,但不是數字。 – jlordo 2013-04-23 16:03:18
爲什麼4行如果kolon = 5在你的例子中? – NINCOMPOOP 2013-04-23 16:04:42
另外,你正在調用'Arrays.sort(dizi_asil [i]);'。那麼,爲什麼你期望你的數組不被排序? – jlordo 2013-04-23 16:08:24