马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 高山 于 2026-10-3 17:03 编辑
>>>如果你看不懂,推荐视频
*仅做优秀视频推荐,本版与该作者无任何利益关系。
给你一串编码
现在你要开始压缩它了 磁盘就那么点大,带宽就那么点贵
问:你要把它压到最短为止
你有多少种编码的方案呢?具体怎么编呢? 在评论区回复本问题可获得鱼币+5 荣誉+5 数量有限
(强烈建议所有鱼油先自己拿纸笔编一编,再看答案)
【图 1】01 比特流穿过 Huffman 漏斗
各位鱼油大家好,今天这帖不灌水,咱们聊一个学数据结构的人谁都绕不开的东西——哈夫曼编码。
先别急着翻教材,咱们玩个游戏。
有一句话,ABRACADABRA(就是魔术师念的那句咒语),一共 11 个字母。要把它塞进计算机里:
最笨的办法,每个字母 8 个比特,11 × 8 = 88 个比特,这谁都知道是浪费;好一点的,这句话只用到 5 种字母,3 个比特就能区分 8 种符号,11 × 3 = 33 个比特。
还能再少吗?能,而且能压到 23 个比特。
更狠的是,有人从数学上证明了:这 11 个字母最少也得要 22.44 个比特(这个值叫熵,后面会讲)。也就是说 23 个比特几乎是贴着天花板走的,再压就是违反物理定律了。
这中间的魔法,是一个 1952 年、25 岁的博士生,在一篇只有四页纸的论文里给出的。
|