设有一个10阶的对称矩阵a,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为
时间: 2023-05-31 21:18:29 浏览: 515
### 回答1:
36。因为对称矩阵只需要存储上三角或下三角的元素即可,而10阶矩阵的上三角或下三角共有45个元素,因此只需要存储45个元素。按照行序为主存储,a11为第一元素,a21为第二元素,a22为第三元素,以此类推,a85对应的行和列分别为9和4,因此它是第45个元素,存储地址为36。
### 回答2:
首先,对称矩阵是指矩阵中的元素关于主对角线对称,即a[i][j] = a[j][i]。在本题中,矩阵为10阶对称矩阵,因此只需要存储上三角的元素即可。
采用压缩存储方式,以行序为主存储,即按照行顺序依次存储每一行的元素,而第一行只需要存储第一个元素a11,因此其存储地址为1。由于矩阵对称,第一列的元素也可以通过上三角对应的元素得到,因此只需要存储第二行及其以上的上三角元素,共45个(10+9+8+7+6+5+4+3+2+1-10),占用45个地址空间。
那么,a85对应的元素是第9行的第5个元素,即a[9][5]。按照行序为主存储的原则,对于矩阵中的任意一个元素a[i][j],其在压缩存储中对应的地址为:
addr = 1 + j + (i-1)*10 - ((i-1)*(i-2)/2)
其中,第一项1是指第一个元素的地址为1,第二项j是指当前元素在其所在行中的位置,第三项(i-1)*10是指当前元素之前已经存储的元素个数,最后一项((i-1)*(i-2)/2)是指当前元素所在行之前已经是对称矩阵中的下三角元素,因此需要减去这些下三角元素所占的地址空间。
因此,a[9][5]在压缩存储中的地址为:
addr = 1 + 5 + (9-1)*10 - ((9-1)*(9-2)/2) = 45
因此,a85的地址为45。
### 回答3:
要确定a85的地址,首先需要确定a矩阵压缩存储后的存储方式。以行序为主存储意味着矩阵的第一行会被按顺序依次存储,然后是第二行、第三行……以此类推,直至矩阵的最后一行。由于a是对称矩阵,即a的转置等于a本身,因此只需存储矩阵主对角线及其以下部分即可(也可存储主对角线及其以上部分)。这样,矩阵中的一些元素会被重复存储,例如a[2][3]和a[3][2]会分别存储在两个不同的地址中。
以10阶对称矩阵a为例,由于只需要存储主对角线及以下部分,还需要考虑对角线上的元素只需存储一次。因此,对于a矩阵的第i行和第j列(i<=j),其在压缩存储中的存储地址为addr(i,j)=1+1+2+3+...+(i-1)+(j-1)+(j-i),其中1+2+3+...+(i-1)是前i-1行元素的个数,(j-1)+(j-i)是在第i行之前的元素个数,1是矩阵第一元素a11存储地址为1。
因此,对于a85,即矩阵第8行第5列的元素,其在压缩存储中的存储地址为:addr(8,5)=1+1+2+3+4+5+6+7+4=33。
因此,a85的地址为33。
阅读全文