行列の上三角部分を対角線の上にオフセットし、線形配列として格納している場合(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]