算法设计与分析自学 《算法设计分析的数学基础》习题

1.求解递归方程T(n) = T(5n/6) + n

对于Master定理而言,a=1,b=5/6,f(n)=n

n^{​{log{b}}^{a}}= n^{​{log{5/6}}^{1}} = n^{0} = 1 \leq f \left ( n \right )= \theta \left ( n \right ) \therefore T \left ( n \right )= \theta \left ( n \right )

2.证明或否证明f\left ( n \right ) +o\left ( f\left ( n \right )\right ) = \theta \left ( f\left ( n \right ) \right )

\because \frac{o\left ( f\left ( n \right ) \right )}{f\left ( n \right )}= 0 \therefore f\left ( n \right ) + o\left ( f\left ( n \right ) \right )= f\left ( n \right )= \theta \left ( f\left ( n \right ) \right )

3.证明:设k 是任意常数正整数,则{log{k}}^{n}= o\left ( n \right )

\forall c> 0,欲{log{k}}^{n}< cn,必n< k^{cn},即n^{\frac{1}{n}}< k^{c}

容易证得,k^{c}> 1,所以当n_{0}= k^{c}时,对\forall c>0,k\in \mathbb{N}^{+},\frac{1}{k^{c}}\leq 1即当n\geq n_{0}= k^{c}时,n^{\frac{1}{n}}\leq n_{0}^{\frac{1}{n_{0}}}= k^{c\frac{1}{k^{c}}}\leq k^{c},所以\therefore {log{k}}^{n}= o\left ( n \right )

4.证明:O\left ( f\left ( x \right ) \right )+O\left ( g\left ( x \right ) \right )= O\left ( max\left ( f\left ( x \right ) ,g\left ( x \right )\right ) \right )

\because O\left ( f\left ( x \right ) \right )\leq c_{1}f\left ( x \right ),O\left ( g\left ( x \right ) \right )\leq c_{2}g\left ( x \right ) \therefore O\left ( f\left ( x \right ) \right )+O\left ( g\left ( x \right ) \right )\leq c_{1}f\left ( x \right )+c_{2}g\left ( x \right )\leq 2max\left \( c_{1},c_{2} \right \)\times max\left ( f\left ( x \right ), g\left ( x \right ) \right )

不妨设c_{1}< c_{2},则O\left ( f\left ( x \right ) \right )+O\left ( g\left ( x \right ) \right )\leq2c_{2}max\left ( f\left ( x \right ), g\left ( x \right ) \right )= cmax\left ( f\left ( x \right ), g\left ( x \right ) \right ),其中c= 2c_{2}

综上所述,O\left ( f\left ( x \right ) \right )+O\left ( g\left ( x \right ) \right )= O\left ( max\left ( f\left ( x \right ) ,g\left ( x \right )\right ) \right )

5.求解递归方程T\left ( n \right )=T\left ( \left \lceil n/2 \right \rceil \right )+1

T\left ( n \right )= T\left ( \left \lceil n/2 \right \rceil \right )+1 =1+\left ( 1+T \left ( \left \lceil n/4 \right \rceil\right )=1+1+\left ( 1+T \left ( \left \lceil n/8 \right \rceil\right )= ...= {i+T \left ( \left \lceil n/2^{i} \right \rceil\right )

\frac{n}{2^{i}}= 1\Rightarrow 2^{i}= n\Rightarrow i= {log{2}}^{n}

T\left ( n \right )=i+T \left ( \left \lceil n/2^{i} \right \rceil\right )= {log{2}}^{n}+T\left ( 1 \right )由于题中没有给出T\left ( 1 \right )的取值,所以我只能做到这步了。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值