数学结果的证明
Kraft-McMillan 不等式
定理 给定唯一可译码 f:M→L,L 对应的符号集 S 的大小为 r,并且语言 L 所包含的 n 个符号串 l1,⋯,ln 的长度分别为 w1,⋯,wn,那么
i=1∑nr−wi≤1
证明 我们记等式左方数值为 K。现在给定任意正整数 m,我们计算
Km=i1=1∑ni2=1∑n⋯im=1∑nr−wi1−wi2−⋯−win
将上式按 wi1+⋯+win 的大小重新整理,可以得到
Km=l=1∑mlmaxqlr−l
其中,lmax 为语言 L 中最长串的长度,ql 为 wi1+⋯+win=l 的项数。由于该码是唯一可译码,这样的项必然不能超过 rl 个(如不然,将会出现两种不同的组合方式得到同一个串的情况),因此有
Km≤l=1∑mlmaxrlr−l=mlmax
接下来我们使用反证法:不妨设 K>1,记 K=1+δ。当 m 充分大以至于 m>1+2lmax/δ2 时,则有
Km≥21m(m−1)δ2>mlmax
矛盾。因此必须 K≤1。