从我的算法教科书:
一年一度的县赛马将带来三匹从未相互竞争过的纯种马。兴奋地,你研究了他们过去的 200 场比赛,并将这些总结为四个结果的概率分布:第一(“第一名”)、第二、第三和其他。
Outcome Aurora Whirlwind Phantasm
first 0.15 0.30 0.20
second 0.10 0.05 0.30
third 0.70 0.25 0.30
other 0.05 0.40 0.20
哪匹马最容易预测?解决这个问题的一种定量方法是查看可压缩性。将每匹马的历史记录为一串 200 个值(第一、第二、第三、其他)。然后可以使用霍夫曼算法计算对这些跟踪记录字符串进行编码所需的总比特数。这适用于 Aurora 290 位,Whirlwind 380 位,Phantasm 420 位(检查一下!)。Aurora 具有最短的编码,因此在强烈的意义上是最可预测的。
他们是如何获得 420 的 Phantasm 的?我不断收到 400 个字节,如下所示:
结合第一,其他 = 0.4,结合第二,第三 = 0.6。最终以 2 位编码每个位置。
我对霍夫曼编码算法有什么误解吗?
此处提供教科书:http ://www.cs.berkeley.edu/~vazirani/algorithms.html (第 156 页)。