Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 使用输入字符模式(或频率)确定哈夫曼树的深度?_Algorithm_Math_Data Structures_Huffman Code_Greedy - Fatal编程技术网

Algorithm 使用输入字符模式(或频率)确定哈夫曼树的深度?

Algorithm 使用输入字符模式(或频率)确定哈夫曼树的深度?,algorithm,math,data-structures,huffman-code,greedy,Algorithm,Math,Data Structures,Huffman Code,Greedy,我想把它作为一个变体。是否仍然可以从输入(或频率)计算哈夫曼树的深度,而无需绘制树 如果没有捷径,那么这个问题的答案是如何找到的?具体示例为:频率为1到10的10个输入符号为5 如果你正在寻找一个方程来获取频率并给出深度,那么不,不存在这样的方程。证明是存在一组频率,在应用哈夫曼算法时,您可以在这些频率上进行任意选择,从而产生不同的深度树!因此,对于某些频率集,“哈夫曼树的深度是多少?”甚至没有唯一的答案 一个简单的例子是频率1、1、2和2的集合,它可以给出2或3的深度,这取决于应用哈夫曼算法时

我想把它作为一个变体。是否仍然可以从输入(或频率)计算哈夫曼树的深度,而无需绘制树


如果没有捷径,那么这个问题的答案是如何找到的?具体示例为:频率为1到10的10个输入符号为5

如果你正在寻找一个方程来获取频率并给出深度,那么不,不存在这样的方程。证明是存在一组频率,在应用哈夫曼算法时,您可以在这些频率上进行任意选择,从而产生不同的深度树!因此,对于某些频率集,“哈夫曼树的深度是多少?”甚至没有唯一的答案

一个简单的例子是频率1、1、2和2的集合,它可以给出2或3的深度,这取决于应用哈夫曼算法时配对的最小频率

得到答案的唯一方法是应用哈夫曼算法。您可以使用一些快捷方式来获得深度,因为您不会在末尾使用树。但无论如何,你都将有效地建造这棵树

你可以用熵方程来近似深度,或者至少给它加上一个界限。在某些特殊情况下,边界可能会有足够的限制,以提供精确的深度。例如,如果所有频率相等,则可以计算深度为符号数对数基数2的上限


一个很酷的例子表明,当你使用斐波那契序列作为频率时,简单的熵界不足以得到准确的答案。这确保树的深度是符号数减去1。因此,频率1、1、2、3、5、8、13、21、34、55、89、144、233、377和610将产生14位的深度,即使最低频率符号的熵为10.64位。

那么如何计算上一个post呢?抽签?以前的帖子是什么?什么计算你说深度是5/我想你用的是公式之类的。。