Dij*_*tra 8 compression algorithm huffman-code information-theory
从我的算法教科书:
一年一度的县赛马比赛将引进三羽从未参加过比赛的纯种马.很兴奋,你研究他们过去的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
Run Code Online (Sandbox Code Playgroud)
哪匹马最可预测?这个问题的一个定量方法是研究可压缩性.将每匹马的历史记录为200个值(第一,第二,第三,其他)的字符串.然后可以使用霍夫曼算法计算编码这些跟踪记录串所需的总位数.这对于Aurora来说是290位,对于Whirlwind来说是380位,对于Phantasm来说是420位(检查它!).Aurora具有最短的编码,因此在强烈意义上是最可预测的.
他们是如何为Phantasm获得420的?我一直得到400字节,如下所示:
首先结合,其他= 0.4,结合第二,第三= 0.6.最终以2位编码每个位置.
有没有我对霍夫曼编码算法误解的东西?
教科书可在此处获得:http://www.cs.berkeley.edu/~vazirani/algorithms.html(第156页).
我认为你是对的:Phantasm 的 200 个结果可以用 400 位(不是字节)表示。290 为 Aurora 和 380 为 Whirlwind 是正确的。
正确的霍夫曼代码是通过以下方式生成的:
如果你这样做,你会得到 420 位:
归档时间: |
|
查看次数: |
308 次 |
最近记录: |