规律分布特殊矩阵的压缩存储

合集下载

数据结构实验五矩阵的压缩存储与运算学习资料

数据结构实验五矩阵的压缩存储与运算学习资料

数据结构实验五矩阵的压缩存储与运算第五章矩阵的压缩存储与运算【实验目的】1. 熟练掌握稀疏矩阵的两种存储结构(三元组表和十字链表)的实现;2. 掌握稀疏矩阵的加法、转置、乘法等基本运算;3. 加深对线性表的顺序存储和链式结构的理解。

第一节知识准备矩阵是由两个关系(行关系和列关系)组成的二维数组,因此对每一个关系上都可以用线性表进行处理;考虑到两个关系的先后,在存储上就有按行优先和按列优先两种存储方式,所谓按行优先,是指将矩阵的每一行看成一个元素进行存储;所谓按列优先,是指将矩阵的每一列看成一个元素进行存储;这是矩阵在计算机中用一个连续存储区域存放的一般情形,对特殊矩阵还有特殊的存储方式。

一、特殊矩阵的压缩存储1. 对称矩阵和上、下三角阵若n阶矩阵A中的元素满足= (0≤i,j≤n-1 )则称为n阶对称矩阵。

对n阶对称矩阵,我们只需要存储下三角元素就可以了。

事实上对上三角矩阵(下三角部分为零)和下三角矩阵(上三角部分为零),都可以用一维数组ma[0.. ]来存储A的下三角元素(对上三角矩阵做转置存储),称ma为矩阵A的压缩存储结构,现在我们来分析以下,A和ma之间的元素对应放置关系。

问题已经转化为:已知二维矩阵A[i,j],如图5-1,我们将A用一个一维数组ma[k]来存储,它们之间存在着如图5-2所示的一一对应关系。

任意一组下标(i,j)都可在ma中的位置k中找到元素m[k]= ;这里:k=i(i+1)/2+j (i≥j)图5-1 下三角矩阵a00 a10 a11 a20 … an-1,0 … an-1,n-1k= 0 1 2 3 …n(n-1)/2 …n(n+1)/2-1图5-2下三角矩阵的压缩存储反之,对所有的k=0,1,2,…,n(n+1)/2-1,都能确定ma[k]中的元素在矩阵A中的位置(i,j)。

这里,i=d-1,(d是使sum= > k的最小整数),j= 。

2. 三对角矩阵在三对角矩阵中,所有的非零元素集中在以主对角线为中心的带内状区域中,除了主对角线上和直接在对角线上、下方对角线上的元素之外,所有其它的元素皆为零,见图5-3。

稀疏矩阵及其压缩存储方法

稀疏矩阵及其压缩存储方法

稀疏矩阵及其压缩存储方法1.基本概念稀疏矩阵(SparseMatrix):是矩阵中的一种特殊情况,其非零元素的个数远小于零元素的个数。

设m行n列的矩阵含t个非零元素,则称以二维数组表示高阶的稀疏矩阵时,会产生零值元素占的空间很大且进行了很多和零值的运算的问题。

特殊矩阵:值相同的元素或0元素在矩阵中的分布有一定的规律。

如下三角阵、三对角阵、稀疏矩阵。

压缩存储:为多个值相同的元素只分配一个存储空间;对0元素不分配空间。

目的是节省大量存储空间。

n x n的矩阵一般需要n2个存储单元,当为对称矩阵时需要n(1+n)/2个单元。

2.三元组顺序表——压缩存储稀疏矩阵方法之一(顺序存储结构)三元组顺序表又称有序的双下标法,对矩阵中的每个非零元素用三个域分别表示其所在的行号、列号和元素值。

它的特点是,非零元在表中按行序有序存储,因此便于进行依行顺序处理的矩阵运算。

当矩阵中的非0元素少于1/3时即可节省存储空间。

(1)稀疏矩阵的三元组顺序表存储表示方法#define MAXSIZE 12500 // 假设非零元个数的最大值为12500typedef struct {int i, j; // 该非零元的行下标和列下标ElemType e; //非零元素的值} Triple; // 三元组类型typedef union { //共用体Triple data[MAXSIZE + 1]; // 非零元三元组表,data[0]未用int mu, nu, tu; // 矩阵的行数、列数和非零元个数} TSMatrix; // 稀疏矩阵类型(2)求转置矩阵的操作◆用常规的二维数组表示时的算法for (col=1; col<=nu; ++col)for (row=1; row<=mu; ++row)T[col][row] = M[row][col];其时间复杂度为: O(mu×nu)◆用三元组顺序表表示时的快速转置算法Status FastTransposeSMatrix(TSMatrix M, TSMatrix &T) {// 采用三元组顺序表存储表示,求稀疏矩阵M的转置矩阵TT.mu = M.nu; T.nu = M.mu; T.tu = M.tu;if (T.tu) {for (col=1; col<=M.nu; ++col) num[col] = 0;for (t=1; t<=M.tu; ++t) ++num[M.data[t].j];// 求M 中每一列所含非零元的个数cpot[1] = 1;for (col=2; col<=M.nu; ++col) cpot[col] = cpot[col-1] + num[col-1];// 求M 中每一列的第一个非零元在b.data 中的序号for (p=1; p<=M.tu; ++p) { // 转置矩阵元素col = M.data[p].j; q = cpot[col];T.data[q].i =M.data[p].j; T.data[q].j =M.data[p].i;T.data[q].e =M.data[p].e; ++cpot[col];} // for} // ifreturn OK;} // FastTransposeSMatrix其时间复杂度为: O(mu +nu)3.行逻辑联接的顺序表——压缩存储稀疏矩阵方法之二(链接存储结构)行逻辑联接的顺序表:稀疏矩阵中为了随机存取任意一行的非0元素,需要知道每一行的第一个非0元素在三元组表中的位置,因此将上述快速转置算法中指示行信息的辅助数组cpot 固定在稀疏矩阵的存储结构中,让每一行对应一个单链表,每个单链表都有一个表头指针,这种“带行链接信息”的三元组表即称为行逻辑联接的顺序表。

特殊矩阵的压缩存储

特殊矩阵的压缩存储

特殊矩阵的压缩存储简介矩阵是数学和计算机科学中的基本数据结构之一,广泛应用于各个领域。

在某些情况下,矩阵的数据量十分庞大,导致存储和处理的效率低下。

为解决这一问题,特殊矩阵的压缩存储方法应运而生。

什么是特殊矩阵特殊矩阵是指具有一定特征或性质的矩阵。

常见的特殊矩阵包括对角矩阵、三角矩阵、稀疏矩阵等。

这些矩阵在实际应用中具有普遍性和重要性,因为它们往往可以提供更高效的存储和运算方式。

1. 对角矩阵对角矩阵是指所有的非对角元素都为零的矩阵。

由于对角矩阵的特殊属性,可以使用一维数组来存储矩阵的主对角线元素,从而减少存储空间的占用。

2. 三角矩阵三角矩阵是指所有主对角线以下或以上的元素都为零的矩阵。

同样地,三角矩阵可以使用一维数组来压缩存储,只存储非零元素即可。

3. 稀疏矩阵稀疏矩阵是指元素中绝大多数为零的矩阵。

对于稀疏矩阵,传统的二维数组存储方式存在很大的空间浪费。

因此,压缩存储方法可以大幅减少稀疏矩阵的存储空间。

压缩存储方法特殊矩阵的压缩存储方法旨在减少存储空间的占用,并提高对矩阵的操作效率。

常见的压缩存储方法包括对角线压缩法、三角矩阵压缩法和行逻辑链接法等。

1. 对角线压缩法对于对角矩阵和三角矩阵,可以使用对角线压缩法来进行存储。

对角线压缩法是指只存储矩阵的主对角线元素或其他非零对角线元素,并用一维数组来表示。

通过这种方式,可以大幅减少矩阵的存储空间,并方便对矩阵进行操作。

对角矩阵的压缩存储对角矩阵的对角线元素存储在一维数组中,数组的长度等于矩阵的行数或列数。

例如,对于一个3x3的对角矩阵:1 0 00 2 00 0 3可以使用一维数组[1, 2, 3]来表示。

三角矩阵的压缩存储三角矩阵的非零元素存储在一维数组中,数组的长度等于矩阵的行数或列数。

对于下三角矩阵,可以使用一维数组来存储矩阵的下三角部分(不包含主对角线),而上三角矩阵可以使用一维数组来存储矩阵的上三角部分。

例如,对于一个3x3的下三角矩阵:1 0 02 3 04 5 6可以使用一维数组[2, 4, 5]来表示。

矩阵的压缩存储

矩阵的压缩存储

矩阵的压缩存储前⾔ ⼀⼊编程深似海,从此砖头是爱⼈,⽇⽇搬,夜夜搬,搬到天荒地⽼,精尽⼈亡,直教⼈失去了⾃我,忘记了时间,忽然之间发现九⽉份快没了,赶紧写篇博客打个卡,证明⼀下我还活着。

数组与矩阵 数组是由⼀组相同类型的数据元素构成的有限序列,访问数据元素的⽅式是使⽤元素各⾃的序号进⾏访问,也就是下标。

数组它本⾝是线性表的推⼴,⼀维数组就是⼀个向量形式的线性表,⼆维数组就是由⼀维数组组成的线性表。

在许多科学计算和⼯程应⽤中,经常要⽤到矩阵的概念,我们⽤的最多的其实就是Mysql的表,表数据都是⾏列存储,这就是矩阵。

由于矩阵具有元素数⽬固定以及元素按下标关系有序排列等特点,所以在使⽤⾼级语⾔编程时,⼀般都是⽤⼆维数组来存储矩阵。

数组的顺序存储为什么是顺序存储? 我想问这个问题就太低级了。

因为它是数组,数据的存储⽅式分为顺序存储和链式存储两种,数组⼀旦被定义,他的维数和维界就已固定,除结构的初始化和销毁外,数组只会有存取元素和修改元素的操作,不存在插⼊和删除操作,所以数组适合⽤顺序存储。

数组存放在内存中的映射关系 数组可以是多维的,但是内存空间却是⼀维的,所以我们就要把多维数组通过⼀定的映射顺序把它变成⼀维的,然后存储到内存空间之中。

在⼤多数⾼级编程语⾔中,多维数组在内存中通常有两种不同的顺序存储⽅式,按⾏优先顺序存储和按列优先顺序存储。

举个例⼦,以下3⾏4列的⼀个⼆维数组矩阵:a1,a2,a3,a4b1,b2,b3,b4c1,c2,c3,c4 按⾏优先顺序存储: 按列优先顺序存储:地址计算 地址计算的意思就是给定数组下标,求在⼀维内存空间的地址,从⽽取出数据。

我们先来看⼀维数组的地址计算 ⼀维数组内的元素只有⼀个下标,存储⽅法和普通的线性表⼀样。

如⼀维数组 A = [a1,a2,a3,......ai,.........,an],每个元素占⽤size个存储单元(就是内存⼤⼩),那么元素ai的存储地址为 A[0]的位置 + (i-1)*size再来看⼆维数组的地址计算 以⼆维数组Amn为例,⾸元素为A[0][0],数组中任意元素A[i][j]的地址为:A[0][0]的位置 + (n * (i-1) + (j-1))* size;⽐如:⼀个5⾏4列的⼆维数组A,按⾏存储,其中每个元素占2个存储单元,⾸元素地址是1000,求第3⾏第2列的元素在内存中的地址。

特殊矩阵的压缩存储

特殊矩阵的压缩存储

特殊矩阵的压缩存储特殊矩阵的压缩存储是一种将矩阵中的零元素省略掉,只存储非零元素及其位置信息的存储方式。

这种存储方式可以大大减少矩阵在内存中所占用的空间,提高计算效率和存储效率。

一、特殊矩阵的定义特殊矩阵是指具有某些特定性质的矩阵。

常见的特殊矩阵有三角矩阵、对称矩阵、对角线矩阵、稀疏矩阵等。

1. 三角矩阵:当一个上三角(下三角)矩阵中除了主对角线和下(上)方所有元素都为零时,称之为上(下)三角矩阵。

2. 对称矩阵:当一个方阵A满足A[i][j]=A[j][i]时,称之为对称矩阵。

3. 对角线矩阵:当一个方形n×n的稠密(dense)或稀松(sparse)实数或复数方针中非对角线元素都为0时,该方针被称为对角线方针。

4. 稀松(sparse)或稀有(sparsest)系数或系数矩阵(sparse matrix):在数学中,一个矩阵如果大部分元素为零,那么这个矩阵就被称为稀疏矩阵。

二、特殊矩阵的压缩存储方式特殊矩阵的压缩存储方式是一种将矩阵中的零元素省略掉,只存储非零元素及其位置信息的存储方式。

这种存储方式可以大大减少矩阵在内存中所占用的空间,提高计算效率和存储效率。

1. 三角矩阵的压缩存储对于上三角(下三角)矩阵A,只需要把主对角线以下(以上)的元素按行优先顺序排列成一个一维数组B即可。

由于上(下)三角形中有n(n-1)/2个零元素,因此B数组长度为n(n+1)/2。

例如:A = [ 1 2 3 ][ 0 4 5 ][ 0 0 6 ]B = [ 1, 2, 3, 4, 5, 6 ]2. 对称矩阵的压缩存储对于对称方针A,只需要把其中任意一个三角形(上或下)中的非零元素按行优先顺序排列成一个一维数组B即可。

由于对称方针中有n(n+1)/2个零元素,因此B数组长度为n(n+1)/2。

例如:A = [ 1 2 3 ][ 2 4 5 ][ 3 5 6 ]B = [ 1, 2, 3, 4, 5, 6 ]3. 对角线矩阵的压缩存储对于对角线方针A,只需要把其对角线上的元素按行优先顺序排列成一个一维数组B即可。

数据结构-第四章 矩阵的压缩存储.

数据结构-第四章 矩阵的压缩存储.

3
二维数组同样满足数组的定义。一个二维 数组可以被看成是特殊的一维数组,其中, 每个元素又是一个一维数组。多维数组可以 按同样的方法类推。
) )
Amn
( a11 a12 (a 21 a 22 ... ( ... (a m1 a m 2
( ) (
... ... a1n ) ... ... a 2 n ) ... ... ... ) ... ... a mn )
特殊矩阵:值相同的元素或零元素在矩阵中
分布有一定规律。 稀疏矩阵:零元素较多,分布无规律。
11
4.2.1
对称矩阵
Aij Aji
在一个n阶方阵A中,若元素满足下述性质:
则称A为对称矩阵。对称矩阵中的元素关于主 对角线对称,故只需要存储矩阵的上三角或下 三角矩阵,这样可以节约大约一半的空间。
0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 67 0 0
col
1 2 1
2 2
3
4 1
5 0
6 1 8
7 0 9
num[col]
cpot[col]
2
5
3
7
8
扫描矩阵三元组表,根据某项的列号,确定它转置 后的行号,查 cpot表,按查到的位置直接将该项存入 转置三元组表中。
7
二维数组与高维数组
1)存储方式
计算机的存储结构是一维的,因而多维数组必须 按某种次序排成一个线性序列加以存储。
a[1][1] a[2][1] A a[3][1] a[m][1]

a[1][2] a[2][2] a[3][2]
a[1][3] a[2][3] a[3][3]

数据结构-第四章 矩阵的压缩存储.

数据结构-第四章 矩阵的压缩存储.

23
算法:P100
算法分析:
O( nu+tu) 当非0元素个数->mu*nu时,接近O(mu*nu)
24
2) 十字链表
十字链表是稀疏矩阵链接形式存储结构 的一种(当然还有其它形式)。在该方法 中每一个非0元素用一个结点表示,结点 中除了表示非0元素的行、列和值的三元 组外,还增加了两个链域:行指针域,用 来指向本行中下一个非0元素;列指针域 ,用来指向本列中下一个非0元素。
a[m][2] a[m][3]
a[1][n] a[2][n] a[3][n] a[m][n]

按行优先方式顺序存储 a11,a12,…a1n,a21,…,a2n,…,am1,am2,…,amn 按列优先方式顺序存储 a11,a21,…am1,a12,…,am2,…,a1n,a2n,…,amn
i n(n 1) / 2
i 1
因此可将这些元素存放在一个向量S[n(n+1)/2]中
a11 a21 a22 a31 a32
k= 0 1 2 3 4
…...
an1
n(n-1)/2
…...
ann
13
n(n+1)/2-1
为了便于访问方阵A中的元素,必须在aij 和S[k]之间建立一个对应关系。若aij在下三 角矩阵中,则有:
9
推广到 n 维数组
将其中的每一个元素映射到一维数组的某 一个位置,各维元素个数为 m1, m2, m3, …, mn,下标为 i1, i2, i3, …, in 的数组元素的存储 地址:
LOC(i1 , i2 ,, in ) LOC(0,0,...0) (i1 m2 m3 mn i2 m3 m4 mn in 1 mn in ) * l

矩阵压缩储存 三元组 带状矩阵

矩阵压缩储存 三元组 带状矩阵

矩阵压缩储存三元组带状矩阵矩阵压缩储存是一种常用的数据结构,用于减少存储空间和提高数据处理效率。

在某些特殊类型的矩阵中,存在大量的零元素,这些零元素会占据大量的存储空间,并且对于计算和处理时也会造成浪费。

因此,为了更高效地存储和处理这些特殊类型的矩阵,我们可以使用三元组带状矩阵的方法。

三元组带状矩阵是一种压缩储存矩阵的方法,它通过记录矩阵中非零元素的值、所在行和列的信息,来表示整个矩阵。

与普通的矩阵相比,三元组带状矩阵可以大大减少存储空间的使用。

三元组带状矩阵的存储方式如下:首先,我们需要记录矩阵的行数和列数,以及非零元素的个数。

然后,我们使用一个数组来存储非零元素的值,另外还需要两个数组来存储非零元素所在的行和列的信息。

这样,我们就可以通过这三个数组来表示整个矩阵了。

举个例子来说明三元组带状矩阵的存储方式。

假设有一个5x5的矩阵,其中只有4个非零元素,分别是2、4、6和8。

那么我们可以使用如下的三个数组来表示这个矩阵:值数组:[2, 4, 6, 8]行数组:[1, 2, 3, 4]列数组:[1, 2, 3, 4]通过这三个数组,我们就可以还原出原始的矩阵。

在这个例子中,我们可以得到如下的矩阵:2 0 0 0 00 4 0 0 00 0 6 0 00 0 0 8 00 0 0 0 0可以看到,通过三元组带状矩阵的存储方式,我们只需要存储非零元素的信息,而零元素则可以省略不存储。

这样就大大减少了存储空间的使用。

而带状矩阵是指矩阵中非零元素所在的行和列的分布呈带状结构。

带状矩阵可以用来表示一些具有特定规律的矩阵,比如对角线元素较多的矩阵。

在带状矩阵中,非零元素分布在主对角线及其附近的带状区域内,其宽度可以根据实际情况确定。

通过使用带状矩阵的特性,我们可以进一步优化三元组带状矩阵的存储方式。

在存储非零元素的值、行和列的数组中,我们可以按照带状矩阵的分布规律来存储元素的信息,这样可以进一步减少存储空间的使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三角矩阵大体分为三类:下三角矩阵、上三角矩阵、对称矩阵。对于一个 n 阶矩阵 A 来 说:若当 i <j 时,有 a ij =c(典型情况 c=0 ),则称此矩阵为下三角矩阵;若当 i>j 时,有 aij =c(典型情 况 c=0 ),则称此矩阵为上三角矩阵;若矩阵中的所有元素均满足 aij =aji,则称此矩阵为对称矩 阵。
【本节要点】
= Loc( A[ 1 ][ 1 ])+( 2 ( i-1 )+ j -1)*size
1、 规律分布特殊矩阵的压缩存储原则:按规律存放非零元素;
2、 按规律找出地址计算公式
思考题:类同按行为主序,请给出按列或按行为主序条件下上三角矩阵以及对称矩阵的 相关推导。 2 .带状矩阵
( 1 )带状矩阵描述:在矩阵中的所有非零元素都集中在以主对角线为中心的带状区域中。 其中最常见的是三对角带状矩阵,如图 3 所示。
a11 A12
a21 A22 a23
A32 a33 a34
( 2 )三对角带状矩阵特点
数组 C
a11 a12 a21 a22 a23 a31 … ann
Loc(i,j)
1 2 3 4 5 6 … 3n-2
图 4 带状矩阵的压缩形式
②确定非零元素在一维数组空间中的地址 Loc ( A[ i][ j])= Loc ( A[ 1 ][ 1 ])+(前 i-1 行非零元素个数+第 i 行中 aij 前非零元素个
数)*size 前 i-1 行元素个数=3 ×( i-1 )- 1 (因为第 1 行只有 2 个非零元素); 第 i 行中 ai j 前非零元素个数=j-i +1 ,其中
j-i=
-1 ( j<i) 0 (j=i) 1 (j>i)
由此得到: Loc ( A[ i][ j])= Loc( A[ 1 ][ 1 ])+( 3 ( i-1 )- 1 +j-i +1)*size
以图 1 所示的 n×n 下三角矩阵( c=0 )为例,讨论三角矩阵的压缩存储实现。 下三角矩阵的压缩存储原则是只存储下三角的非零元素,不存上三角的零元素。按“行 序为主序”进行存储,得到的序列是 a11 ,a21 ,a2 2 ,a31 ,a32 ,a33 ,…, an1 ,an2 ,…, ann。 由于下三角矩阵 A 的元素个数为 n×( n +1 )/ 2 ,即:
┋┋ ┋ ┋0
an1
an2 an3 ┋ ann
图 1 下三角矩阵 A
图 2 三角矩阵的压缩形式下三角矩阵中元素 aij(i>j),在一维数组 B 中的存储地址为:
Loc[ i ,j]=Loc[1,1]+(前 i-1 行非零元素个数+第 i 行中 aij 前非零元素个数)*size
其中,前 i-1 行元素个数=1+2+3+4+ … +(i-1)= i (i -1)/2,
第 i 行中 aij 前非零元素个数=j-1,
size 为每个元素所占字节数,
因此有:LOC[ i ,j]= LOC[1,1]+(i (i -1)/2+ j-1)*size
对于对称矩阵,因其元素满足 aij=aji,我们可以为每一对相等的元素分配一个存储空间, 即只存下三角(或上三角)矩阵,从而将 n2 个元素压缩到 n(n+1)/2 个空间中。
第 1 行: 1 个
第 2 行: 2 个
第 3 行: 3 个


第 n 行: n 个
1+2+3+4+5+…+n= n(n+1)/2
可压缩存储到一个大小为 n ×( n+1 )/ 2 的一维数组 B 中。如图 2 所示。
a11
a21
a22 0
a31
a a 32
33 0
数组 B 数组下标
a11 a21 a22 a31 a32 … ann 1 2 3 4 5 … n(n+1)/2
第 2 讲规律分布特殊矩阵的压缩存储
规律分布的特殊矩阵
元素分布具有一定规律的矩阵称为规律分布的特殊矩阵,如三角矩阵(方阵的上或下三 角全为零)和带状矩阵(若干条对角线含有非零元)。这类矩阵中元素分布的规律可以用数学公 式来反映。已知二维矩阵 A 中元素下标 i 和 j,作为转换函数 f 的自变量,计算出到一维内存空 间的地址值 K,即 A[ i][ j]=B[ K],实现了原二维矩阵到压缩存储后的一维数组的存储映射。 1 .三角矩阵
i=1, j=1,2; 当 1<i<n,j=i-1, i, i+1
a43 a44 a45 ……… … ……
图 3 带状矩阵 A
时 aij 非零,其它元素均为零。
i=n, j=n-1, n;
( 3 )三对角带状矩阵压缩存储方法 三对角带状矩阵的压缩存储原则为:将带状区域上的非零元素按行序存储。 其压缩存储方法如下。 ①确定存储该矩阵所需的一维向量空间的大小 假设每个非零元素所占空间的大小为 size 个单元。从图 3 中观察得知,在三对角带状矩 阵中,除了第一行和最后一行只有 2 个非零元素外,其余各行均有 3 个非零元素,由此得到:所需 一维向量空间的大小为: 2 +2 +3 ×( n -2 )= 3 n-2 ,如图 4 所示。
实际应用中,如果将矩阵 A[][]压缩到一个一维数组 B[]中,我们更关心其下标的对应
关系,即如果将 A[i][j]存储到 B[k],那么如何通过 i 和 j,计算出 k 的值,进而获取 A[i][j]
的值。下面以下三角为例(假设对角线以上全为 0):
0,
当i j时
A[i][ j] B[i(i 1) / 2 j],当i j时
相关文档
最新文档