算法导论 第三版 第16章 16.3-6和16.3-9两道题怎么做?

li_x1979 li_x1979 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
16.3-6 假定我们有字母表C = {0,1,...,n - 1}上的一个最优编码,我们希望用最少的二进制位传输此编码。说明如何仅用2n - 1 + n[lgn]([]表示上取整)位表示C上的任意最优前缀码。(提示:通过对树的遍历,用2n - 1位说明编码树的结构)

疑问:不清楚题目问的是不是怎么用最少的位来表示编码树?如果是,怎么表示呢?

16.3-9 证明:对于一个由随机生成的8位字符组成的文件,没有任何压缩方法可以将其压缩,哪怕只是压缩一位。(提示:比较可能的文件数量和可能的编码文件数量。)

疑问:算法导论第二版里有该题的答案,原文如下:
Show that we cannot expect to compress a le of randomly chosen bits. Notice that the number of possible source les S using n bits and compressed les E using n bits is 2n+1 - 1. Since any compression algorithm must assign each element s 2 S to a distinct element e 2 E the algorithm cannot hope to actually compress the source le.

我理解就是所有可能的源文件和压缩后的文件数量相同,又因为源文件不同,压缩后的文件也不同,且压缩方法不可能使文件更大,所以源文件和压缩后的文件只能相同,所以无法压缩。

但是我认为哈弗曼算法是针对每个文件有不同的编码树,即使压缩后文件相同,但是因为编码树不同还是可以还原的啊。如果按照题目的结论,岂不任何文件都无法压缩了?
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
li_x1979
数据结构与算法 33,026 成员 35,334 内容