矩阵压缩
下三角矩阵
A[10,5]在一维数组中的下标(下标从0开始,行优先)
- A[10,5]前面的元素个数:第1行——1个,第2行——2个,···,第9行——9个,第10行——4个(横着看,A[10,,5]-A[10,1]=4)。共49个。
- A[10,5]的下标:0+49=49
A[10,5]在一维数组中的下标(下标从0开始,列优先)
- A[10,5]前面的元素个数:第1列——n个,第2列——n-1个,···,第4列——n-3个;第5列——5个(竖着看,A[10,5]-A[5,5]=5)。
- A[10,5]前面的元素个数:[n+(n-3)]×4/2+5=4n-1。
- A[10,5]的下标:4n-1
上三角矩阵
A[5,10]在一维数组中的下标(下标从0开始,行优先)
- 第1行——n个,第2行——n-1个,···,第4行——n-3个,第5行——5个(横着看,A[5,10]-A[5,5]=5)。
- A[5,10]前面的元素个数:[n+(n-3)]×4/2+5=4n-1。
- A[5,10]的下标:4n-1。
A[5,10]在一维数组中的下标(下标从0开始,列优先)
- 第1列——1个,第2列——2个,···,第9列——9个,第10列——4个(竖着看,A[5,10]-A[1,10]=4)
- A[5,10]前面的元素个数:(1+9)×9/2+4=49
- A[5,10]的下标:0+49=49。
三对角矩阵
特点:❶第一行、最后一行有两个元素。❷其它各行有三个元素——第一个元素(i=j+1),第二个元素(i=j),第三个元素(i=j-1)。
A[30,30]在一维数组中的下标(下标从0开始,行优先):
- 前29行有多少个元素:2+3×28=86;
- A[30,30]是第30行的第几个元素:第2个(因为i=j)
- A[30,30]前面有多少个元素:86+1=87
- A[30,30]的下标:0+87=87