<算法导论>练习3.2

3.2-1
因为f(m),与g(m)单调递增,所以,在n>m时有:
f ( m ) < f ( n ) ( 1 ) g ( m ) < g ( n ) ( 2 ) f(m)<f(n)\quad(1)\\ g(m)<g(n)\quad(2) f(m)<f(n)(1)g(m)<g(n)(2)
式(1)与(2)相加可得 f ( m ) + g ( m ) < f ( n ) + g ( n ) f(m)+g(m)<f(n)+g(n) f(m)+g(m)<f(n)+g(n),所以是单调递增的。

在m<n时,有g(m)<g(n),且f(x)单调递增,所以f(g(n))同样是单调递增的。

若f(m)与g(m)非负,则,f(m)g(m)<f(n)g(n) .所以是递增的。

3.2-2
a log ⁡ b c = a log ⁡ a c log ⁡ a b = ( a log ⁡ a c ) 1 log ⁡ a b = c log ⁡ b a a^{\log_{b}{c} } =a^{\frac{\log_ac}{\log _ab}}=(a^{\log _{a}c})^{\frac{1}{\log _ab} }=c^{\log _ba} alogbc=alogablogac=(alogac)logab1=clogba

3.2-3
在证明3.19前首先要证明, l g ( n ) = O ( n ) lg(n)=O(n) lg(n)=O(n),根据O函数的定义,即存在常数c使得在 n > n 0 n>n_0 n>n0时存在 l g n < = c ∗ n lgn<=c*n lgn<=cn,在c=1时很容易找到 n 0 n_0 n0使其成立,所以 l g ( n ) = O ( n ) lg(n)=O(n) lg(n)=O(n)
那么原式中代入斯特林公式就可以很容易的化简为:
在这里插入图片描述
要证明 f ( n ) = w ( g ( n ) ) f(n)=w(g(n)) f(n)=w(g(n))就是证明:
lim ⁡ n → ∞ f ( n ) g ( n ) = + ∞ \lim_{n \to \infty}\frac{f(n)}{g(n)} =+\infty nlimg(n)f(n)=+
证明方式是代入斯特林公式然后放缩:

在这里插入图片描述
证明 f ( n ) = o ( g ( n ) ) f(n)=o(g(n)) f(n)=o(g(n))就是证明:
lim ⁡ n → ∞ f ( n ) g ( n ) = 0 \lim_{n \to \infty}\frac{f(n)}{g(n)} =0 nlimg(n)f(n)=0在这里插入图片描述

3.2-6
把黄金分割率代入方程就可以证明了。

3.2-7
在这里插入图片描述
3.2-8
由对称性可知 k l n k = Θ ( n ) klnk=\Theta(n) klnk=Θ(n)等价于 n = Θ ( k l n k ) n=\Theta(klnk) n=Θ(klnk)
则: l n n = Θ ( l n ( k l n k ) ) = Θ ( l n k + l n l n k ) = Θ ( l n k ) lnn=\Theta(ln(klnk))=\Theta(lnk+lnlnk)=\Theta(lnk) lnn=Θ(ln(klnk))=Θ(lnk+lnlnk)=Θ(lnk)
二者相除即可得到:
n l n ( n ) = Θ ( k l n k ) Θ ( l n k ) = k l n k l n k = Θ ( k ) \frac{n}{ln(n)} =\frac{\Theta(klnk)}{\Theta(lnk)}=\frac{klnk}{lnk}=\Theta(k) ln(n)n=Θ(lnk)Θ(klnk)=lnkklnk=Θ(k)
再根据对称性换算一下即可。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值