【问题标题】:Valid Huffman Codes?有效的霍夫曼代码?
【发布时间】:2016-11-05 23:38:20
【问题描述】:

我正在尝试解决霍夫曼编码问题,但我不确定我是否完全理解该主题。我试图弄清楚以下是否是有效的霍夫曼代码:

A: 0  
B: 01  
C: 11  
D: 110  
E: 111  

我在想它是无效的,因为 A 或 1 会侵犯 B 或 01。不过我并不肯定。有人可以启发我吗?

编辑:对不起,我的意思是把 A 输入为 0 而不是 1。

【问题讨论】:

  • 非常无效。 A 是 C 和 D 和 E 的前缀,C 是 D 和 E 的前缀。不过 A 和 B 可以一起使用。
  • 对不起,我打错了。 A 实际上是 0,而不是 1。也感谢您的快速回答! A: 0 还能成立吗?
  • 仍然无效,您将无法判断00111AAE 还是ABC110 可能是eiter DCA 等等。跨度>

标签: theory huffman-code


【解决方案1】:

没有。霍夫曼代码是前缀代码,这意味着没有代码可以是任何其他代码的前缀。在您的示例中,A 是 B 的前缀,C 是 D 和 E 的前缀。

有效的前缀代码是:

A: 0
B: 10
C: 11

您可以使用长度为 1、2 和 2 的代码。任何其他代码都是这些代码的前缀。不能有长度为 1、2、2、3 和 3 的前缀代码。

这是五个符号的有效前缀代码:

A: 0
B: 10
C: 110
D: 1110
E: 1111

是这样的:

A: 00
B: 01
C: 10
D: 110
E: 111

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 2011-08-02
    • 2017-04-18
    • 1970-01-01
    • 2010-10-17
    相关资源
    最近更新 更多