首页 > 试题广场 >

有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数

[单选题]
有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是()
  • 60
  • 66
  • 18000
  • 33
额,还需要考虑边界问题??
发表于 2015-08-31 20:13:00 回复(0)
更多回答
将非零元素所在、非零元素的构成一个三元组(i,j,v) ;
对于该题:
每个非零元素占3*2=6个字节,共10个非零元素,需6*10 = 60 个字节;
此外,还一般要用三个整数来存储矩阵的行数、列数和总元素个数,又需要3*2 = 6个字节;
总共:60 + 6 = 66 个字节。
发表于 2016-09-09 16:33:02 回复(9)
啥头像
答案:B。
每个元素要用行号,列号,元素值来表示,在用三元组表示稀疏矩阵,还要三个成员来记住,矩阵的行数列数,总的元素数,所以所需的字节数是10*(1+1+1)*2+3*2=66
(复制来的)
编辑于 2021-01-12 11:37:27 回复(7)
typedef struct{
    int i; //行号
    int j; //列号
     elemtype d; //元素值
}

typedef struct{
    int md; //行数
    int nd; //列数
    int td; //非零元个数
}

3 * 10 * 2 + 3 * 2 = 66

发表于 2016-09-04 09:29:39 回复(0)
B,因为保存10个节点需要10*3*2=60,还要一个节点表示边界需要3*2=6,所以共需66
发表于 2015-01-28 00:03:54 回复(5)
我觉得指定矩阵的行数和列数就够了吧,并不需要指定元素总数……之所以还是需要三个,是因为用的三元组存储
发表于 2015-12-12 08:47:02 回复(1)
每个元素要用行号,列号,元素值来表示,由于二维稀疏矩阵的大小都是在256之内,所以行号和列号只需要char来存储。在用三元组表示稀疏矩阵,还要三个成员来记住,矩阵的行数列数,总的元素数,所以所需的字节数是10*(1+1+1)*2+3*2=66
发表于 2015-07-30 00:08:25 回复(1)
每个元素要用行号,列号,元素值来表示,在用三元组表示稀疏矩阵,另外还要三个成员来记住,矩阵的行数列数,总的元素数,所以所需的字节数是10*(1+1+1)*2+3*2=66
发表于 2022-02-18 10:21:58 回复(0)
三元组里有3个值,每个整数站2字节,即一个3元组占3*2个字节
非0元素有10个,所以需要10个3元组,故3*2*10
还需要存行数列数非零元素个数,所以在原来的基础上再加上3*2
即3*2*10+3*2=66
发表于 2020-03-30 23:10:05 回复(0)
将非零元素所在行、列、非零元素的值构成一个三元组(i,j,v) ; 对于该题: 每个非零元素占3*2=6个字节,共10个非零元素,需6*10 = 60 个字节; 此外,还一般要用三个整数来存储矩阵的行数、列数和总元素个数,又需要3*2 = 6个字节; 总共:60 + 6 = 66 个字节。 (复制的)
发表于 2022-05-31 20:48:45 回复(0)
还要有三个元素来记住行数,列数和总的个数
发表于 2020-08-28 23:44:59 回复(0)

purpose

to save memory.

Data Structure

  1. (line,column,nonzero_value)
  2. (numberOfline, numberOfcolumn,numberOfNonzero)
发表于 2018-09-27 14:10:33 回复(0)

三元祖只存储非零元素,并且还要加上记录非零元素得行数,列数以及总元素个数

发表于 2018-07-26 18:09:48 回复(0)
除了表示每个元素(行号、列号、值)的:10*(2+2+2)= 60 以外;还应该表示整个系数矩阵的行数(2)、列数(2)和总元素数(2),所以总共需要:60+2+2+2 = 66 字节!
发表于 2018-02-28 15:56:39 回复(0)
(10*3*2)=60 还得拿出3个来存储行,列,非零元素.3*2=6; 所以:60+6=66
发表于 2017-11-16 16:13:22 回复(0)
知道了行列,不就知道了总的元素个数了吗。。。。难道是因为三元组,所以不得不3个?
发表于 2016-09-14 17:57:05 回复(0)
行,列,数值:10×3×2 矩阵的行数,列数,元素总个数:3×2
发表于 2016-08-31 21:03:25 回复(0)
三元组就是稀疏数组
稀疏数组:
行   列     值
固定三列
行数:
二维数组转稀疏数组 得到有效非零值的个数+1 就是行数
new int[size+1][3]
本题 行:10+1
列:3
33*2=66
B
发表于 2021-11-09 11:45:45 回复(0)
选B吧 20*3+3*2=66

发表于 2019-06-24 19:27:24 回复(0)
还需要行数,列数,和非零个数
发表于 2017-03-08 15:33:02 回复(0)
忘记记录矩阵的行数,列数,元素总数,这三个量需要6个字节。
发表于 2016-08-09 17:00:04 回复(0)