20分求算法问题
有一个a[n][n]三对角矩阵,将其三条对角线上的元素存于数组b[3n-2],使得b[k]=a[i][j];用i j表示k的下标变换公式 谢谢
-1 0 1 2 3 4 5 j
0 @ @ @ 0 0 0 *
1 * @ @ @ 0 0 *
2 * 0 @ @ @ 0 *
3 * 0 0 @ @ @ *
4 * 0 0 0 @ @ @
i
如图假设存在,-1,5这两列,则得:
k = ((i*3 + (j+2)-i) -1) -1 = i*2+j;
因为i,j不可能为-1,或者超过数组范围,所以这个公式是完全实用的。
我测试是对的,请您自行测试。
[ 本帖最后由 wsj3000 于 2010-5-4 21:28 编辑 ]