【发布时间】:2008-10-28 09:58:14
【问题描述】:
我认为这一定很简单,但我无法正确...
我有一个 MxM 三角矩阵,其系数逐行存储在一个向量中。 例如:
M = [ m00 m01 m02 m03 ]
[ m11 m12 m13 ]
[ m22 m23 ]
[ m33 ]
存储为
coef[ m00 m01 m02 m03 m11 m12 m13 m22 m23 m33 ]
现在我正在寻找一种非递归算法,它可以为我提供矩阵大小M 和系数数组索引i
unsigned int row_index(i,M)
和
unsigned int column_index(i,M)
它引用的矩阵元素。所以,
row_index(9,4) == 3、column_index(7,4) == 2 等,如果索引计数是从零开始的。
编辑:已经给出了几个使用迭代的回复。有人知道代数表达式吗?
【问题讨论】:
-
您能否改写一下,以便数组中的元素可能是字母而不是数字 - 当您同时使用零时,很难 100% 准确理解您的函数应该做什么数组本身中基于行/列的值和基于 1 的值。
-
data[row * num_cols + column] 是作为单个数组存储在内存中的 C 二维数组的经典表达式。
-
显然矩阵中重复的m12是错误的。
-
是的,第二个应该是 m13。我想在下面的解决方案中提到它,但没有:-)
标签: algorithm