有没有机会解码用霍夫曼算法编码的大文本? (我没有代码树,我确定原文是英文的)
答案 0 :(得分:0)
如果你没有树,那么你必须构建它。它基本上是霍夫曼编码算法的一部分,就在你需要构造字符串之前。
现在,如果您不知道文本中字符的频率,那可能会出现问题,因为字符可能由不同的位数表示。这是具有不等字母成本的霍夫曼编码的示例。
如果不是这种情况并且每个字母的成本相等,那么你就能推断出一棵树,但这很难,因为你需要在代码之前尝试不同的代码分配。最终得到合法的地图。
一旦你有了树,解码应该不是一个问题(理论上,至少)。 这里有几个关于使用Huffman alg进行编码/解码的资源: Wiki-page, 2, applet
答案 1 :(得分:0)
我的猜测是你不能轻易解码文本,原因是任何有效的霍夫曼树可用于解码任何霍夫曼代码(或任何随机比特流,物有所值)。因此,您无法仅从代码本身重新创建用于生成代码的原始树。
您可以尝试通过将输出与字典匹配并在不匹配时更改代码来动态生成代码,然后重新启动解码。不过,我不知道这种蛮力方法有多实用。