现有一段文本,其中只有A,B,C,D,E包含五个字母,它们出现的次数分别是A出现1次,B出现2次,C出现10次,D出现6次,E出现4次,那么经过哈弗曼编码后,各个字母对应的编码可能是下面哪一组?

A.A=1101,B=1100,C=0,D=10,E=110
B.A=1100,B=1101,C=0,D=10,E=111
C . A=1111,B=1101,C=10,D=0,E=110
D . A=1101,B=1100,C=10,D=0,E=111

1 收藏


直接登录
最新评论
  • LINYA java开发工程师 02/09

    b

  • di7xian   02/09

    B

    首先,Huffman编码的思想是出现概率高的比出现概率低的码字更短,达到冗余最少的效果。所以也叫最佳编码。(排除C、D。)

    其次,Huffman编码是异前置码字,也就是说任何码字不能和其他码字的开头部分相同,达到连接时无需隔离符号的效果。(排除A。)

    • 宅男可以阳光 大三学生 02/16

      隔离符号是什么意思

      • di7xian   02/16

        假设一个场景,我们需要用计算机来存储性别。计算机底层是只能识别0和1的,所以需要给性别进行编码:

        男性—>0

        女性—>1

        中性—>01

        现在我们需要存储的数据为“男性女性”,编码后为“01”。

        我们发现,这样存储的话,无法判断我们要存储的数据是“男性女性”还是“中性”。除非在每两个码字之间加入我们提前约定好的符号(比如逗号,)以排除歧义,即“0,1”。

        但是假如我们进行编码的时候就注意,进行异前置编码(任何码字不能和其他码字的开头部分相同),就不会出现上述歧义了,也就避免了使用隔离符号,有效减少了编码长度。对于不管是存储还是传输,这都是十分有利的。

  • wx_a33QB3zZ   03/16

    为什么我算出A是1111,B是1110