如果我有一个矩阵的上三角部分,在对角线上方的偏移量,存储为线性阵列,矩阵元素的指数如何从数组的线性索引中提取?线性指数上三角矩阵
例如,线性阵列[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]
为最后一列的元素写一个公式。为了使它更容易编写一个从行号计算线性索引的公式(列号是固定的),然后将其反转。从那里继续一个通用公式。 – 2014-11-23 06:57:44
请注意,此处介绍的解决方法也可以用于列出N次事件的组合(无需重复),而不需要任何迭代/递归。 – 2015-03-30 15:03:40