我遇到了一个问题,在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