- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
对于具有斐波那契频率的 n 个字符,最短代码和最长霍夫曼代码的长度是多少?
据我了解 - 如果我们构建一棵树,它看起来就像一个分支,每个节点的长度为 1,从根部到最低的叶子都悬空。当我们从 n-2 个数字中创建第一个节点时,该节点的频率将为 F[n]-1,并且 F[n]>F[n]-1>F[n-1]。 (F[n-1] 是剩余最少的,F[n] 将是第二少剩余的),通过归纳,这将适用于所有频率。
我们创建的树显然是一棵不平衡的树,我认为这不是好树。
如果这是创建树的最佳方式,那么最长的创建方式的长度是多少?如果不是最优路径,那么最短路径的长度是多少?
我是计算机科学的新手,非常希望得到很好的解释。
最佳答案
最短的代码长度为 1,最长的代码长度为 n-1。将有两个长度为n-1的符号,1..n-2中每个长度有一个符号。
只有一棵最优树,仅此而已。它不平衡没有什么不好的。事实上,必须使用最少的位数对具有这些频率的符号进行编码。
我不知道你说的“最短”或“最长”是什么意思。
关于algorithm - 霍夫曼编码 : shortest and longest code for Fibonacci frequencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975160/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我这样定义了一个二叉树: struct btree { int x; btree* left_child = nullptr; btree* right_child = nul
我有这个霍夫曼代码,旨在返回数组中每个字母的霍夫曼代码并按字母顺序打印它们。问题是它不生成任何输出,而是继续处理,直到我手动退出它。谁能帮我找出错误吗?我认为我的代码是正确的,但我不知道无限循环从何而
动机 想象一下一个哈夫曼压缩文件被部分下载,就像在p2p软件中一样,所以我们首先为整个文件分配磁盘空间,然后开始随机下载文件块。其中一个哈夫曼密码(但我们不知道是哪一个)是一个结束密码,所以如果这个密
以下 block 由霍夫曼 block 标记嵌套 -HUFF---------------------------------------------------------------------0
我是一名优秀的程序员,十分优秀!