Encoding 同概率哈夫曼编码符号

Encoding 同概率哈夫曼编码符号,encoding,huffman-code,Encoding,Huffman Code,我正在为一门关于信息传递的课程做练习。我们需要把哈夫曼编码成二进制代码字母表 源字母表有四个概率符号: P(A)=0.4 P(B)=0.3 P(C)=0.2 P(D)=0.1 对于哈夫曼,我取概率最低的两个符号,在这个例子中是C和D。我构造了一个有两片叶子的子树(C&D)。 列表中的下一个符号B的概率为0.3 我现在可以做两件事。或者用a&B构造第二个子树,因为B的概率与子树CD的值相同。第二个选项是将B与子树CD放在一起,并创建一个值为0.6的更大的树 在下图中,您可以看到我得到的两个选项

我正在为一门关于信息传递的课程做练习。我们需要把哈夫曼编码成二进制代码字母表

源字母表有四个概率符号:

  • P(A)=0.4
  • P(B)=0.3
  • P(C)=0.2
  • P(D)=0.1
对于哈夫曼,我取概率最低的两个符号,在这个例子中是C和D。我构造了一个有两片叶子的子树(C&D)。 列表中的下一个符号B的概率为0.3

我现在可以做两件事。或者用a&B构造第二个子树,因为B的概率与子树CD的值相同。第二个选项是将B与子树CD放在一起,并创建一个值为0.6的更大的树

在下图中,您可以看到我得到的两个选项。第一棵树是生成两个子树并将它们放在一起。第二棵树就是我们在树中插入B的地方


我现在的问题是我应该选择什么方法?为等概率生成一个新子树?或者将相等的概率放入树中?

在这种情况下,应用程序哈夫曼算法中只有一个选择。在每个步骤中,您必须选择两个最低概率。第二步是0.3(B)和0.3(C&D)。您不能在该步骤中使用,因为它的概率更高,为0.4。所以你画的第一棵树是不正确的,因为它不是应用哈夫曼算法的结果


你画的第二棵树也不正确。或者至少画得不对。二叉树在任何节点上只能有两个分支。它不能有三个。正确的树是A&(B&(C&D))。

谢谢!正是我需要的。是的,我还以为我的第二棵树有什么东西在扭动呢!谢谢你指出它是什么!