gpt4 book ai didi

java - 一维数组中的三角矩阵 get()

转载 作者:行者123 更新时间:2023-12-02 13:48:39 24 4
gpt4 key购买 nike

我想将三角矩阵保存在 1 个暗淡数组中(为了最小化所需的空间,所有零都被省略)并创建一个函数 get() 来从原始矩阵中查找特定条目。

例如:

让我们看看下面的三角矩阵:

0 1 2 3 
0 0 4 5
0 0 0 6
0 0 0 0

我像这样保存这个矩阵:

double[] test = {1,2,3,4,5,6};

所以所有的零都被省略了。

我想编写一个函数来给出原始矩阵的值:

get(3,4)

应该给我6

我正在检查输入以查看其是否超出范围以及它是否位于对角线下方或上方。

//Checking if input is valid 
if (i <= n && j <= n && i >= 1 && j >= 1){
if( j <= i ){
return 0.0;
}else {

}
}

这有效。

我该如何继续?我无法在数组中找到等效的矩阵条目。

如有任何帮助,我们将不胜感激。

编辑:

我的整个代码:

public class dreiecksmatrix {
int n = 4;
double[] a = {1,2,3,4,5,6};

public double get( int i, int j){

//Checking if input is valid
if (i <= n && j <= n && i >= 0 && j >= 0){
if( j <= i ){
return 0.0;
}else {

}
}

return 1.0;
}

public static void main(String [] args ){
dreiecksmatrix test = new dreiecksmatrix();
System.out.println(test.get(2,3));

}
}

最佳答案

这里是计算顶三角形值的示例代码。还没有像 i,j >= 1 这样的极端情况检查,但添加它们很容易。

arr = [[0, 1, 2, 3, 4],
[0, 0, 5, 6, 7],
[0, 0, 0, 8, 9],
[0, 0, 0, 0, 10],
[0, 0, 0, 0, 0]];

flatArr = [1,2,3,4,5,6,7,8,9,10];

n = 5; // matrix size
i = 1;
j = 3;

if (j <= i) {

alert(0);

} else {
pos = 0;
// find an offset caused by first (i - 1) lines
for (k = 1; k < i; k++) {
pos += n - k;
}

// find an offset in line x
pos += j - i;

// array index start from 0 so decrement value
pos = pos - 1;

alert('flatArr[' + pos + '] = ' + flatArr[pos]);
}

关于java - 一维数组中的三角矩阵 get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46095744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com