算法导论16.3-5

  • 问题描述
    证明:如果我们将字母表中字符按频率单调递减排序,那么存在一个最优编码,其码字长度是单调递增的。
  • 问题分析
    任务是证明存在一个码字长度单调递增的最优编码,那么如果可以从它的反例推出码字长度单调递增的编码是最优编码,则问题可以求证。
  • 问题求解
    ①假设字母表为: {c1,c2,...cn} ,字母出现的频率用 f 表示,字母对应的码字长度用d表示。则用数学的语言描述待证明的问题是:如果 f(c1)f(c2)...f(cn) ,那么存在最优编码使得 d(c1)d(c2)...d(cn)
    ②假设在字母集的一个最优编码 T 中,存在i<j, f(ci)f(cj) d(ci)>d(cj) 。通过交换 T ci cj 的编码,可以得到编码 T T 中字母的频率和字码长度分别用 f d 表示,则 f(ci)f(cj) d(ci)<d(cj) 。则
    B(T)B(T)=k=1nf(ck)(d(ck)d(ck))=f(ci)[d(ci)d(ci)]+f(cj)[d(cj)d(cj)]=f(ci)[d(ci)d(cj)]+f(cj)[d(cj)d(ci)]=[f(ci)f(cj)][d(ci)d(cj)]0

    因此 B(T)B(T) 。由于 T 是字母集的一个最优编码,所以T也是字母集的一个最优编码。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值