问答题 设有一个n×n的上三角矩阵(aij),将其上三角中的元素按先行后列的顺序存于数组B[m]中,使得B[k] =aij且k=f1(i)+f2(j)+c,请推导出函数f1、f2和常数c,要求f1和f2中不含常数项。
【正确答案】上三角矩阵第1行有n个元素,第i-1行有n-(i-1)+1个元素,第1行到第i-1行是等腰梯形,而第i行上第j个元素(即aij)是第i行上第j-i+1个元素,故元素aij在一维数组中的存储位置(下标k)为:
k=(n+(n-(i-1)+1))(i-1)/2+(j-i+1)=(2n-i+2)(i-1)/2+j-i+1
进一步整理为:[*]。则得[*]。
【答案解析】此问题考查的知识点是上三角矩阵的存储方式。