一n阶对称矩阵A以行序为主序压缩存储在一维数组B中,存储其下三角元素(包括对角线),计算 A[i][j]与B[k]之间的对应关系。
时间: 2023-10-13 17:04:23 浏览: 224
对称矩阵的压缩储存讲解
对于一个$n$阶对称矩阵$A$,其下三角元素(包括对角线)共有$\frac{n(n+1)}{2}$个。我们可以将这些元素按照行序为主序压缩存储到一维数组$B$中,存储顺序为:
$B[1], B[2], ..., B[n], B[n+1], B[n+2], ..., B[2n-1], ..., B[\frac{n(n+1)}{2}]$
其中,$B[i]$表示矩阵$A$中第$i$个下三角元素的值。
那么,对于矩阵$A$中的元素$A[i][j]$,其中$i \le j$,它在一维数组$B$中的位置$k$可以通过以下公式计算得到:
$k = \frac{(i-1)i}{2} + j$
同样地,对于矩阵$A$中的元素$A[j][i]$,其中$i \le j$,它对应的位置$k$也可以用上面的公式计算得到,即:
$k = \frac{(j-1)j}{2} + i$
需要注意的是,由于数组下标从1开始,因此在实际编程过程中,公式中的$i$和$j$需要减去1。
阅读全文