/ /対角要素配列 - java、配列、ランダム

対角要素配列 - java、配列、ランダム

どのように対角配列を生成することができます: 最初の要素 arr[0][0] ランダム<4,10>であり、次の対角要素はランダムであるが前の要素よりも高いが10より大きくはなく、

例:

8 0 0 0

0 10 0 0

0 0 13 0

0 0 0 17

    int lengthArray = scan.nextInt();
int[][] array = new int[lengthArray][lengthArray];
array[0][0] = rnd.nextInt(7) + 4;
for (int i = 1; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
// generate number diagonal
array[i][i] = rnd.nextInt(
(((array[i - 1][i - 1] + 10) - (array[i - 1][i - 1] + 1) + 1)) + (array[i - 1][i - 1] + 1));
}
}

私は何をやっているのか分からない。

回答:

回答№1は0

前の値に0と10の間のランダムな値(除外)を追加するだけで簡単に追加できます。それは previous -> previous + 9

array[i][i] = rnd.nextInt(10) + (array[i - 1][i - 1]);

テストする完全なコードは次のとおりです。

int lengthArray = 5;
int[][] array = new int[lengthArray][lengthArray];
Random rnd = new Random();
array[0][0] = rnd.nextInt(7) + 4;
for (int i = 1; i < array.length; i++) {
array[i][i] = rnd.nextInt(10) + (array[i - 1][i - 1]);
}

for (int i = 0; i < array.length; i++) {
System.out.println(Arrays.toString(array[i]));
}

1つの出力:

[4, 0, 0, 0, 0]
[0, 6, 0, 0, 0]
[0, 0, 8, 0, 0]
[0, 0, 0, 15, 0]
[0, 0, 0, 0, 19]