首页 > 试题广场 >

对字符串 "mabnmnm" 的二进制进行哈夫曼编码有多少位

[单选题]
对字符串 "mabnmnm" 的二进制进行哈夫曼编码有多少位()
  • 12
  • 13
  • 14
  • 15
mabnmnm
频率 m:3/7 a:1/7 b:1/7 n:2/7(频率越高离根越近)
建树(o只占位,|表示0 ,\表示1):
            o
            |\ 
           m  o
                |\
               n  o
                    |\
                    a  b
由|,\转为0,1得:m->0,n->10,a->110,b->111
mabnmnm:0 110 111 10 0 10 0(共13位)
发表于 2018-12-29 18:38:36 回复(2)
发表于 2019-09-21 11:26:33 回复(2)
tip:当两个数相同时,无论放在左子树或者右子树,其WPL值是一样的,并不影响编码的长度,只是对应字符编码的值互换了而已。
发表于 2021-03-17 11:53:11 回复(0)
画出了霍夫曼树,怎么也想不出选项的数字是怎么来的。原来是根据霍夫曼树得到各个字母编码,然后将字符转化为编码,求总位数。
发表于 2019-09-04 09:30:48 回复(0)
m:3
n:2
a:1
b:1

先排好序: 1,1,2,3

哈夫曼树构造规则:每次形成新的节点都要放回去,再从其中选两个最小的构成一个新的节点。

因此,构造之后的各个字符的哈夫曼编码为:
m : 0            n : 10         a : 110          b : 111
所以,字符串mabnmnm 长度为13位
编辑于 2019-09-22 13:06:35 回复(0)
mabnmnm
频率 m:3/7 a:1/7 b:1/7 n:2/7(频率越高离根越近)
建树(o只占位,|表示0 ,\表示1):
            o
            |\ 
           m  o
                |\
               n  o
                    |\
                    a  b
由|,\转为0,1得:m->0,n->10,a->110,b->111
mabnmnm:0 110 111 10 0 10 0(共13位)
发表于 2022-05-13 20:09:09 回复(0)
总结一下就是哈夫曼编码首先需要计算出每个字符出现的概率,并且出现概率越大的字符编码越短,即离根节点越近。
发表于 2020-05-18 14:59:52 回复(2)
编码长度=WPL
发表于 2019-11-18 09:53:08 回复(0)