【问题标题】:Huffman Encoding symbols with same probability以相同概率对符号进行霍夫曼编码
【发布时间】:2018-12-30 08:22:30
【问题描述】:

我正在为有关信息传输的课程做练习。我们需要将 Huffman 编码为二进制代码字母表。

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

  • 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 的地方

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

【问题讨论】:

    标签: encoding huffman-code


    【解决方案1】:

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

    你画的第二棵树也不正确。或者至少画错了。二叉树在任何时候都只能有两个分支。它不能有三个。正确的树是 A & (B & (C & D))。

    【讨论】:

    • 谢谢!正是我需要的。是的,我认为我的第二棵树有问题!感谢您指出它是什么!
    猜你喜欢
    • 2015-04-11
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多