对角元素阵列

时间:2017-01-06 12:45:08

标签: java arrays random

如何生成对角线数组: 第一个元素 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)); } } 是随机的&lt; 4; 10&gt;,下一个对角线元素是随机的但高于前一个元素但不高于10,

示例:

8 0 0 0

0 10 0 0

0 0 13 0

0 0 0 17

CREATE PROCEDURE insertGebruiker(
    @Naam VARCHAR(50),
    @Achternaam VARCHAR(50),
    @Leeftijd INT, 
    @Geslacht VARCHAR(50),
    @Huidiggewicht INT,
    @Streefgewicht INT,
    @Gebruikersnaam VARCHAR(50),
    @Email VARCHAR(50),
    @Wachtwoord VARCHAR(50),
)
AS
BEGIN
INSERT INTO Gebruiker(
    [Gebruiker-ID],
    Naam,
    Achternaam,
    Leeftijd, 
    Geslacht,
    Huidig_gewicht,
    Streef_gewicht,
    Gebruikersnaam,
    Email,
    Wachtwoord) 
    VALUES (
    1,
    @Naam,
    @Achternaam,
    @Leeftijd , 
    @Geslacht,
    @Huidiggewicht ,
    @Streefgewicht ,
    @Gebruikersnaam ,
    @Email,
    @Wachtwoord,
)
END

我不知道我做错了什么。

1 个答案:

答案 0 :(得分: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]));
}

一个输出:

[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]