2013-10-26 22 views
1

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

+2

你能给我们一些背景吗?你为什么要这样做?这是实际的还是理论上的?这是功课吗? – Craigy

+0

使用“正常”英文文本中字母的频率分析,您可能能够推断代码树。不是一个简单的任务,但。 –

+0

你知道霍夫曼码是代表单个字母还是整个单词吗? –

回答

0

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

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

如果情况并非如此,每封信都有相同的成本,那么您将能够推断出一棵树,但这将会非常困难,因为您需要为代码尝试不同的字母赋值,之前你最终得到一张合法的地图。

一旦你有树,解码应该不是什么大问题(理论上至少)。 这里有几个资源是谈论编码/与霍夫曼ALG解码: Wiki-page2applet

+0

给我,真正的问题是要确定哪些是不同的字母 –

+0

@ HeapOwerflow,再次,如果你知道每个字母将具有相同数量的编码它的位,然后你可以推断出字母。维基页面讨论它:http://en.wikipedia.org/wiki/Huffman_coding#Decompression 但是,究竟该如何去做,我不确定。我希望我的答案以某种方式帮助你。 – Roman

0

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

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