设有n阶三对角矩阵A,即非零元素都位于主对角线以及与主对角线平行且紧邻的两条对角线上,现对该矩阵进行按行压缩存储,若其压储空间用数组B表示,A的元素下标从0开始,B的元素下标从1开始。已知A[0,0]存储在B[1],A[n-1,n-1]存储在B[3n-2],那么非零元素Ai,j存储在B[( )]。C
(59)
A.2i+j-1
B. 2i+j
C.2i+j+1
D.3i-j+1
解题思路:
我们先画矩陈A如下图:
1,其中b1—bn为对角线红线,蓝和黄线为平行线
2,已知A的元素下标从0开始,B元素下标从1开始 B数组=[b1,c1,a2,b2,c2…an,bn]
3,已知A[0,0]存储在B[1]上,得到b1的位置得 i=0,j=0 由B[1]结果位1 代入
A选项 2i+j-1= 20+0-1=-1 结果为-1不成立为1 排除
B选项 2i+j = 20+0=0 结果为0不成立为1 排除
C选项 2i+j+1 = 20+0+1=1 结果为1 满足A 待选
D选项 3i-j+1 = 30-0+1=1 结果为1 满足A 待选
4,我们再看已知条件A[n-1,n-1]存储在B[3n-2] 代入i=n-1,j=n-1结果为3n-2 上面CD中代入
C选项 2i+j+1 = 2*(n-1)+(n-1)+1= 3n-2 结果为3n-2 满足A和B 成立
D选项 3i-j+1 = 3*(n-1)-(n-1)+1 = 2n-3 结果为2n-3 不满足B 排除
所以得出结果C为正确选项.