[TAOCP 1.2.1-13]关于习题13

  每一步都要保证T <= 3n的要求,实际上是针对最终结果A4的,即A4的条件中可以加上T <= 3n,之前的中间步骤需要有更严格的限制,为后面的步骤留出余量。

  从中间的某一步骤看,后面还剩多少步骤呢?这是由d决定的。d是前一次递归的余数,本次递归的除数,它是在不断减小的。

  剩余步骤数 = 本次递归剩余步骤数 + 余下的递归次数 * 一次递归中的步骤数

 

  一次递归,从步骤E4开始,经E2,到E3,要么结束,要么开始下次递归。所以在A5处,本次剩余步骤数是0,A6处是2,A3处是1。

  余下的递归次数是d - 1,每次递归3个步骤。

  剩余步骤数 = 0/2/1 + 3(d - 1)

  

  综上,当前的T不能大于:3n - 0/2/1 - 3(d - 1) = 3(n - d) + 3/1/2   (A5/A6/A3)

 

  不需要为递归开始前执行的步骤数调整限制,如果不满足上式,说明无法保证任何情况下都在3n个步骤内结束。

考虑第一次执行E2后r = 0的情况,恰好也满足了上式。

转载于:https://www.cnblogs.com/dongxuenan/archive/2011/10/04/2213992.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值