【问题标题】:Huffman coding two characters as one霍夫曼将两个字符编码为一个
【发布时间】:2010-05-22 14:36:47
【问题描述】:

我需要霍夫曼代码(最好在 python 或 java 中),它可以不是用一个字符 (a = 10, b = 11) 编码文本,而是用两个 (ab = 11, ag = 10) 编码文本。有可能吗,如果有,我在哪里可以找到它,也许它在互联网的某个地方,我只能找到它?

【问题讨论】:

  • 如果这是作业,请标记。
  • 不完整的家庭作业。我答应我的老师这样做,现在我不能。我认为这要容易得多:)
  • 你试过搜索一些霍夫曼编码的python代码吗?我立即在谷歌上找到了一些关键字“huffman python”。正如 IVlad 在下面所说,使用单个字符与使用两个字符作为符号之间确实没有太大区别。将使用一个字符的代码调整为使用两个字符应该很容易。当然,如果字符串有奇数个字符,那么你将需要一个符号才能有一个字符。

标签: java python huffman-code


【解决方案1】:

霍夫曼代码不关心字符,它关心符号。通常,它用于对字母/其他单个字符进行编码,但可以很容易地推广到对字符串进行编码。基本上,您只需采用现有实现并允许符号是字符串而不是字符。叶节点将对应一个字符串列表。

【讨论】:

    【解决方案2】:

    有一个 Huffman 编码器示例随 Python bitarray 模块一起分发,如果这对您有用的话。

    【讨论】:

      【解决方案3】:

      某处可能有一些代码。但这听起来像是一个解析和标记化的问题。我要回答的第一个问题是您要处理多少个独特的配对。霍夫曼编码最适用于少量令牌。例如,键盘上的 101 个字符。但是,如果您的两个字符可以是任何字符,那么您现在正在大量扩展字符的最大数量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-21
        • 2010-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多