当前位置:首页 » 服务存储 » 存储上三角矩阵用什么存储方式
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储上三角矩阵用什么存储方式

发布时间: 2023-02-25 01:05:57

❶ 特殊矩阵的压缩存储:上三角、对称、下三角存储,有三个问题。求大侠们解答~亲一个~这个图能看清吗

1.k=n*(n+1)/2的原因是:对于三角矩阵,从1到N的总和是这么多,也就是说整个矩阵有这么多元素。另外正三角阵对应正方形。
对称矩阵满足A的转置也就是自身的特点,元素上,a[i,j] = a[j,i]。实际上的存储可以利用三角阵。所以老实说我对于他对称阵算法为什么少一个元素也有疑惑。
可能是三角阵可以对应不等长的矩阵,所以造成了k值不一样。
2.上三角阵,存在的元素是满足[1<= j <=n, i >= j]的关系[这里用i表横坐标j表纵坐标],如果是长3宽4的当然不能和长4宽3的相提并论,试着画画就明白了。
3.对称阵不会出现像三角阵那样有一小角还是其他数字的情况。这个其他数字就是(6+1)-1=6。
4.压缩存储,只是将部分符合条件的矩阵减少一部分的存储空间。老实说我也感觉不很有用,除非他处理的数据本身必然具备此类特点。
5.固定的,多试几次自己记下来然后找找就好。如果没记错的话,在矩阵上画画就可以看出来。
6.stdlib.h是标准的输入输出库,最为常用,至少里面包括了scanf等函数,只要你需要printf你就不能扔掉它。否则会出现函数未定义的问题。毕竟语言本身不提供函数类库,类库需要另行引用。

❷ 简述一下如何将一个上三角矩阵以列为主序压缩存储在一个一维数组

给一维数组分配矩阵数据总数+2的长度。

数组第一个和第二个存储矩阵的行数和列数
然后你将矩阵每列顺序的存储到该数组中

应该可以

列数判断何时数组结束
行数判断每列的界限

❸ 矩阵的压缩存储是什么

二维数组在形式上是矩阵,因此一般用二维数组来存储矩阵。在不压缩存储的情况下,矩阵采用按行优先或按列优先方式存储,占用的存储单元数等于矩阵的元素个数。在实际应用中,经常出现一些阶数很高的矩阵,同时在矩阵中非零元素呈某种规律分布或者矩阵中有大量的零元素,若仍然用常规方法存储,可能存储重复的非零元素或零元素,这将造成存储空间的大量浪费。因此对这类矩阵进行压缩存储,从而合理地利用存储空间。

为了节省存储空间,可以利用特殊矩阵的规律,对它们进行压缩存储,也就是说为多个值相同的元素只分配一个存储单元,对零元素不分配空间。适合压缩存储的矩阵一般是值相同的元素或者零元素在矩阵中分布有一定规律的特殊矩阵和稀疏矩阵。常见的特殊矩阵有对称矩阵、三角矩阵和对角矩阵。

❹ 数据结构特殊矩阵压缩存储问题

这个问题出在下标的问题上吧,第一个问题,明确说明第一个非零元素a(1,1)存于B[0]中,所以推导时没问题。

第二个问题并没有说第一个非零元素a(1,1)存于B[0]中,但大多教材推导是,是将第一个非零元素a(0,0)存于B[0]中,所以公式就不一样了,你的推导逻辑没问题。

❺ 上三角矩阵按行优先存储公式

题目出错了,上三角肯定是 i<=j
公式也不对,怎么可能跟n无关呢,第i行的元素个数是n-i+1,
a(i,j)前面有i-1行,这i-1行共有(n-1+1)+...+(n-(i-1)+1)个元素,第i行有j-i+1,加在一起再减1就是k(因为数组下标为0)