1

有没有机会解码用霍夫曼算法编码的大文本?(我没有代码树,我确定原文是英文)

4

2 回答 2

0

我的猜测是你不能轻易地解码文本,原因是任何有效的霍夫曼树都可以用来解码任何霍夫曼代码(或任何随机比特流,不管它的价值)。因此,您无法仅从代码本身重新创建用于生成代码的原始树。

您可以尝试通过将输出与字典匹配并在不匹配时更改代码来动态生成代码,然后重新开始解码。不过,我不知道这种蛮力方法有多实用。

于 2014-01-23T12:55:00.190 回答
0

如果您没有树,那么您将不得不构建它。它本质上是霍夫曼编码算法的一部分,就在您需要构造字符串之前。

现在,如果您不知道文本中字符的频率,那可能是个问题,因为字符可能由不同的位数表示。这是一个字母成本不等的霍夫曼编码示例。

如果不是这种情况并且每个字母的成本相同,那么您将能够推断出一棵树,但这将非常困难,因为您需要在最终得到代码之前尝试不同的字母分配一张合法的地图。

一旦你有了树,解码应该不是什么大问题(至少在理论上)。以下是一些关于使用 Huffman alg 进行编码/解码的资源: Wiki-page2applet

于 2013-10-27T00:35:13.567 回答