求霍夫曼扩展编码

来源:互联网 发布:hello kitty主题软件 编辑:程序博客网 时间:2024/05/22 05:02

某计算机有10条指令,它们的使用频率分别为0.30,0.20, 0.16, 0.09, 0.08, 0.07, 0.04, 0.03, 0.02, 0.01

(1)用霍夫曼编码对它们的操作码进行编码,并计算平均码长。

(2)用扩展编码法对操作码进行编码,限两种操作码长度,并使平均码长最短。


(1)


霍夫曼编码的结果以及各编码的长度如下所示:

0.30  0.20 0.16  0.09  0.08 0.07  0.04  0.03  0.02  0.01

11   01   101  001   1001 1000 0001  00001 000001 000000

2    2     3    3      4   4    4     5     6     6

平均代码长度为

(0.30+0.20)×2+ (0.16+0.09)×3 + (0.08+0.07+0.04)×4 + 0.03×5 + (0.02+0.01)×6 = 1 + 0.75 + 0.76+ 0.15 + 0.18 = 2.84

(2)采用长度为2和长度为4两种编码:

         0.30 0.20  0.16  0.09 0.08  0.07  0.04 0.03   0.02  0.01

         00 01  1000  1001 1010  1011  1100 1101  1110  1111

平均代码长度为

         (0.30+0.20)×2 + (1-0.30-0.20)×4 = 3.0


原创粉丝点击