上三角矩阵、下三角矩阵、对称矩阵压缩存储所需一维数组大小为多少
时间: 2024-01-24 22:03:59 浏览: 43
对于一个 $n \times n$ 的上三角矩阵,它的压缩存储需要的一维数组大小为 $(n+1) \times n / 2$。因为上三角矩阵中,包含对角线上的元素一共有 $n$ 行,每行元素个数从 $1$ 开始递减,最后一行只有 $1$ 个元素,所以总共有 $1 + 2 + \cdots + n = n(n+1)/2$ 个元素,而压缩存储中不需要存储对角线以下的元素,所以数组大小为 $(n+1) \times n / 2$。
对于一个 $n \times n$ 的下三角矩阵,它的压缩存储需要的一维数组大小也为 $(n+1) \times n / 2$。因为下三角矩阵中,包含对角线上的元素一共有 $n$ 行,每行元素个数从 $n$ 开始递减,最后一行只有 $1$ 个元素,所以总共有 $n + (n-1) + \cdots + 1 = n(n+1)/2$ 个元素,而压缩存储中不需要存储对角线以上的元素,所以数组大小为 $(n+1) \times n / 2$。
对于一个 $n \times n$ 的对称矩阵,它的压缩存储需要的一维数组大小为 $n(n+1) / 2$。因为对称矩阵中,对角线上的元素只有 $n$ 个,而对角线两侧的元素个数相同,所以总共有 $n + 2 \cdot (n-1) + \cdots + 2 \cdot 1 = n(n+1)/2$ 个元素,而压缩存储中只需要存储对称轴上方的元素或下方的元素,所以数组大小为 $n(n+1) / 2$。
相关问题
将 10 阶对称矩阵压缩存储到一维数组 A 中,则数组 A 的长度最少为
一个 $n$ 阶对称矩阵中,对角线元素有 $n$ 个,上三角(不含对角线)的元素有 $n(n-1)/2$ 个,因为对称矩阵的对角线以下的元素和对角线以上的元素是相同的,所以只需要存储其中一部分。
因此,一个 $n$ 阶对称矩阵的元素总数为 $n+n(n-1)/2=(n^2+n)/2$。
而对称矩阵的一维数组压缩存储只需要存储对称矩阵的下三角(不含对角线)的元素,数量为 $n(n-1)/2$ 个,因此数组 A 的长度最少为 $(n^2+n)/2-(n(n-1)/2)=n(n+1)/2$。
因此,将 10 阶对称矩阵压缩存储到一维数组 A 中,数组 A 的长度最少为 $10 \times (10+1)/2 = 55$。
将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为
一个10阶对称矩阵有 $10 \times 10 = 100$ 个元素,但由于对称性,我们只需要存储上三角或下三角的元素,也就是 $10 + 9 + 8 + \cdots + 1 = \frac{10\times 11}{2} = 55$ 个元素即可。而这些元素对应的一维数组A中的长度也必须不小于55。因此,数组A的长度最少为55。