首页 > 试题广场 >

设有一个10阶对称矩阵A[10][10],采用压缩存储方式按

[单选题]
设有一个10阶对称矩阵A[10][10],采用压缩存储方式按行将矩阵中的下三角部分的元素存入一维数组B[  ]中,A[0][0]存入B[0]中,则A[8][6]在B[  ]的(    )位置。    
  • 32
  • 33
  • 42
  • 65
由于是对称矩阵,因此压缩存储可以认为只要存储下三角矩阵。

(0,0)                                                           1
(1,0)(1,1)                                                    2
(2,0)(2,1) (2,2)                                           3
(3,0)(3,1) (3,2) (3,3)                                   4
(4,0)(4,1) (4,2) (4,3) (4,4)                           5
(5,0)(5,1) (5,2) (5,3) (5,4) (5,5)                   6 
(6,0)(6,1) (6,2) (6,3) (6,4) (6,5) (6,6)          7
(7,0)(7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7)  8 
(8,0)(8,1) (8,2) (8,3) (8,4) (8,5) (8,6)          6
1+2+3+4+5+6+7+8+6=42
答案选c
发表于 2017-10-08 11:49:58 回复(8)
本题下标从i=0,j=0开始,A[8][6]实际上是第9行第7列。i=9,j=7。
计算公式为:当i>j,    i(i-1)/2+j;
                     当i<j,     j(j-1)/2+i;
编辑于 2019-07-22 16:46:43 回复(2)
设有一个N阶对称矩阵A[N][N],采用压缩存储方式按行将矩阵中的下三角部分的元素存入一维数组B[  ]中,A[0][0]存入B[0]中,则A[ i ][ j ]在B[  ]的 ((i+1) *i)/2+j 位置。    
发表于 2018-09-15 01:31:29 回复(0)
(1+8) * 8 / 2 + 7 = 43,下标从0开始,减1=42
发表于 2017-06-12 21:39:17 回复(0)
A[8][6]中有多少个元素:分为求完整的等腰三角形和最后的一行两部分。
等腰三角形是等差数列:8*(8+1)/2=36
最后一行索引为6,有6+1个元素
故总共有36+7=43个元素
这些元素放入数组B中,索引从0开始,故占位减1: 43-1=42
发表于 2019-05-08 10:44:01 回复(1)
我觉得是43,有人知道为什么是41吗
发表于 2017-05-19 20:11:46 回复(5)
十阶对称矩阵总共100个元素,除去正对角线的十个元素还剩90,90/2=45,得到除正对角线上的下三角元素个数,所以下三角总共有45+9=54个元素. 对于A[8][6],其位于第九行第七列(数组从A[0][0]开始). 除去第十行10个(A[9][0]~A[9][9]),第九行2个元素(A[8][7],A[8][8]),所求即为54-10-2=42.
发表于 2019-08-05 15:13:21 回复(0)
A[]8[0]以前:1+2+3+4+5+6+7+8=36,A[8][0]~A[8][6],6-0+1=7,36+7-1=42,因为数组B,从B[0]开始。
发表于 2017-09-28 12:32:06 回复(0)
等差数列求和,哇咔咔
发表于 2017-09-03 16:56:10 回复(0)
1十2+3+4+5+6+7+8十7=43,因为下标从0开始,所以-1,为42
发表于 2020-03-30 22:34:36 回复(0)
做了这么多这题,总是在+1和-1的地方间歇性犯浑!我也是醉了。。。
发表于 2017-12-30 20:18:36 回复(0)
1+2+...+8+7 等差数列求和
发表于 2017-08-08 16:50:28 回复(0)
8*(8+1)/2+6=42
发表于 2023-08-09 10:42:02 回复(0)
对称矩阵,存储下三角。 注意下标从0开始。所以A[8][6]实际上是第9行第7个元素。在一维数组中存储的元素个数应该是1+2+3+4+5+6+7+8+7=43个,又一维数组下标也是从0开始,所以下标是43-1=42
发表于 2023-05-23 15:01:14 回复(0)
对称矩阵推导公式:
第A[i][i]个位置(3+i)* i /2
得A[8][8]的位置(3+8)*8/2 = 44;
=>A[8][6] = 44 - 2 = 42
C项正确
发表于 2022-09-14 01:27:48 回复(0)
A[8][6] = A[8][8] -2  =1+2+3+4+5+6+7+8+9  -1  -2  
发表于 2022-09-07 16:57:25 回复(0)
A[8][6]是B数组的第43个元素,写成B[42]B的下标从0开始
发表于 2022-09-02 22:28:37 回复(0)
10*10的矩阵啊,10+9+8+7+6+2=42
发表于 2022-07-29 22:03:28 回复(0)
解释一下为什么最后43要减去1,因为大家计算43指向的是A[8][6]的偏移尾地址了,而应该是要指向首地址,即为A[8][5]的尾地址,这就是为什么要减1的原因
发表于 2022-05-29 13:02:27 回复(0)
第43个,是B[42]
发表于 2022-05-24 10:01:13 回复(0)