设有三对角矩阵An*n,将其三条对角线上的元素存于数组B【3】【n】中,使得元素B【u】【v】=aij,试推到出

如题所述

设有对称矩阵A[n][n],将其上三角元素逐行存于数组B[0..m-1]中,使得B[k]=a[i,j]且
k=f1(i)+f2(j)+c。试推导出函数f1,f2和常数c。
【解答】上三角矩阵第一行(下标为i=0)有n个元素,下标i-1行有n-(i-1)个元素,第一行(下标i=0)到下标i-1行是梯形,而第i行第j列的元素(即aij)是第i行上第j-i+1个元素,故元素Aij在一维数组中的存储位置(下标k)为:

k=(n+(n-(i-1)))i/2+(j-i+1)=(2n-i+1)i/2+j-i+1 将上面的等式进一步整理为: k=(n-1/2)i-i2/2+j+1,
则得f1(i)=(n-1/2)i-i2/2,f2(j)=j,c=1。
温馨提示:答案为网友推荐,仅供参考
相似回答