如果我有矩阵的上三角部分,在对角线上偏移,存储为线性数组,如何(i,j)
从数组的线性索引中提取矩阵元素的索引?
例如,线性数组[a0, a1, a2, a3, a4, a5, a6, a7, a8, a9
是存储矩阵
0 a0 a1 a2 a3
0 0 a4 a5 a6
0 0 0 a7 a8
0 0 0 0 a9
0 0 0 0 0
我们想知道数组中的 (i,j) 索引对应于线性矩阵中的偏移量,而不需要递归。
例如,一个合适的结果k2ij(int k, int n) -> (int, int)
将满足
k2ij(k=0, n=5) = (0, 1)
k2ij(k=1, n=5) = (0, 2)
k2ij(k=2, n=5) = (0, 3)
k2ij(k=3, n=5) = (0, 4)
k2ij(k=4, n=5) = (1, 2)
k2ij(k=5, n=5) = (1, 3)
[etc]