我对两个符号的字母表的最小描述长度的解释感到困惑。
更具体地说,假设我们要编码一个二进制字符串,其中 1 的出现概率为 0.80;例如,这是一个长度为 40 的字符串,有 32 个 1 和 8 个 0:
1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 0 0 1
按照标准的 MDL 分析,我们可以使用前缀代码(如 Huffman 的)来编码这个字符串,编码这个字符串的代码将是 (-log(0.8) * 32 - log(0.2) * 8),它低于复制字符串没有任何编码。
直观地说,编码这个字符串比 1 和 0 以相等概率出现的某个字符串“便宜”。但是,在实践中,我不明白为什么会这样。至少,我们需要一位来区分 1 和 0。我看不出前缀代码如何比只编写不编码的二进制字符串做得更好。
有人可以帮我澄清一下吗?