《算法导论》第三章-第2节_练习(参考答案)
2017-07-27 14:37
639 查看
算法导论(第三版)参考答案:练习3.2-1,练习3.2-2,练习3.2-3,练习3.2-4,练习3.2-5,练习3.2-6,练习3.2-7,练习3.2-8
f(n) , g(n)单调递增,则:
f(m)≤f(n) for m≤ng(m)≤f(n) for m≤n
可得:
f(m)+g(m)≤f(n)+g(n)f(g(m))≤f(g(n))f(m)⋅g(m)≤f(n)⋅g(n),if f(n),g(n) are nonnegative.
所以,得证。
>alogbc=clogba>
alogbc=alogaclogab=(alogac)1logab=clogba
>lg(n!)=Θ(nlgn)>(3.19)
根据斯特林近似公式:
lg(n!)=lg(2πn−−−√(ne)n(1+Θ(1n)))=lg2πn−−−√+lg(ne)n+lg(1+Θ(1n))=lg2πn−−−√+nlgne+lg(1+Θ(1n))=Θ(nlgn)
n!=ω(2n)证明提示:
limn→∞2πn−−−√(ne)n2n=limn→∞2πn−−−√(2ne)n=∞
示例:
∀n>3:2n=2⋅2⋅⋯⋅2n times<1⋅2⋅⋯⋅n=n!⇒n!=ω(2n)
n!=o(nn)证明提示:
limn→∞2πn−−−√(ne)nnn=limn→∞2πn−−−√(1e)n=limn→∞2πn−−−√en=0
示例:
∀n>1:n!=1⋅2⋅⋯n<n⋅n⋅⋯⋅nn times=nnfor ⇒n!=o(nn)
多项式有界,即随着n增大,一直满足:
f(n)≤cnk
两边同时取对数:
lgf(n)≤lgc+klgn
也就是若lgf(n)=O(lgn),则f(n)多项式有界。
对于f(n)=⌈lgn⌉! 的情况, 有
lg(⌈lgn⌉!)=Θ(⌈lgn⌉lg⌈lgn⌉)=ω(lgn)≠O(lgn)
所以函数⌈lgn⌉! 不是多项式有界的。
对于f(n)=⌈lglgn⌉! 的情况, 有
lg(⌈lglgn⌉!)=Θ(⌈lglgn⌉lg⌈lglgn⌉)=o(lglgnlglgn)=o(lg2lgn)=o(lgn)because of lgbn=o(na)
所以函数⌈lglgn⌉! 是多项式有界的。
lg∗(lgn)渐进更大些。
例子:对于2222...(i个2),lg(lg∗n)=lgi;lg∗(lgn)=i−1。
ϕ2−ϕ−1=(1+5√2)2−1+5√2−1==1+25√+5−2−25√−44=0
ϕ^2−ϕ^−1=(1−5√2)2−1−5√2−1==1−25√+5−2+25√−44=0
>Fi=ϕi−ϕi^5√>
当i=0,i=1,
ϕ0−ϕ0^5√=1−15√=0=F0
ϕ1−ϕ1^5√=1+5√−1+5√25√=1=F1
假设当i=n,i=n+1,满足等式。
则,
Fn+2=Fn+1+Fn=ϕn+1−ϕn+1^5√+ϕn−ϕn^5√=ϕn(ϕ+1)−ϕn^(ϕ^+1)5√=ϕnϕ2−ϕn^ϕ2^5√=ϕn+2+ϕn+2^5√
因为
klnk=Θ(n)⇒n=Θ(klnk)
对于lnn,有
lnn=Θ(ln(klnk))=Θ(lnk+lnlnk)=Θ(lnk)
两者相除,有
nlnn=Θ(klnk)Θ(lnk)=Θklnklnk=Θ(k)⇒k=Θ(nlnn)
Exercise 3.2-1
Show that if f(n) and g(n) are monotonically increasing functions, then so are the functions f(n)+g(n) and f(g(n)), and if f(n) and g(n) are in addition nonnegative, then f(n)⋅g(n) is monotonically increasing.f(n) , g(n)单调递增,则:
f(m)≤f(n) for m≤ng(m)≤f(n) for m≤n
可得:
f(m)+g(m)≤f(n)+g(n)f(g(m))≤f(g(n))f(m)⋅g(m)≤f(n)⋅g(n),if f(n),g(n) are nonnegative.
所以,得证。
Exercise 3.2-2
Prove equation (3.16)>alogbc=clogba>
alogbc=alogaclogab=(alogac)1logab=clogba
Exercise 3.2-3
Prove equation (3.19). Also prove that n!=ω(2n) and n!=o(nn).>lg(n!)=Θ(nlgn)>(3.19)
根据斯特林近似公式:
lg(n!)=lg(2πn−−−√(ne)n(1+Θ(1n)))=lg2πn−−−√+lg(ne)n+lg(1+Θ(1n))=lg2πn−−−√+nlgne+lg(1+Θ(1n))=Θ(nlgn)
n!=ω(2n)证明提示:
limn→∞2πn−−−√(ne)n2n=limn→∞2πn−−−√(2ne)n=∞
示例:
∀n>3:2n=2⋅2⋅⋯⋅2n times<1⋅2⋅⋯⋅n=n!⇒n!=ω(2n)
n!=o(nn)证明提示:
limn→∞2πn−−−√(ne)nnn=limn→∞2πn−−−√(1e)n=limn→∞2πn−−−√en=0
示例:
∀n>1:n!=1⋅2⋅⋯n<n⋅n⋅⋯⋅nn times=nnfor ⇒n!=o(nn)
Exercise 3.2-4
⋆ Is the function ⌈lgn⌉! polynomially bounded? Is the function ⌈lglgn⌉! polynomially bounded?多项式有界,即随着n增大,一直满足:
f(n)≤cnk
两边同时取对数:
lgf(n)≤lgc+klgn
也就是若lgf(n)=O(lgn),则f(n)多项式有界。
对于f(n)=⌈lgn⌉! 的情况, 有
lg(⌈lgn⌉!)=Θ(⌈lgn⌉lg⌈lgn⌉)=ω(lgn)≠O(lgn)
所以函数⌈lgn⌉! 不是多项式有界的。
对于f(n)=⌈lglgn⌉! 的情况, 有
lg(⌈lglgn⌉!)=Θ(⌈lglgn⌉lg⌈lglgn⌉)=o(lglgnlglgn)=o(lg2lgn)=o(lgn)because of lgbn=o(na)
所以函数⌈lglgn⌉! 是多项式有界的。
Exercise 3.2-5
⋆ Which is asymptotically larger: lg(lg∗n) or lg∗(lgn).lg∗(lgn)渐进更大些。
例子:对于2222...(i个2),lg(lg∗n)=lgi;lg∗(lgn)=i−1。
Exercise 3.2-6
Show that the golden ratio ϕ and its conjugate ϕ^ both satisfy the equation x2=x+1.ϕ2−ϕ−1=(1+5√2)2−1+5√2−1==1+25√+5−2−25√−44=0
ϕ^2−ϕ^−1=(1−5√2)2−1−5√2−1==1−25√+5−2+25√−44=0
Exercise 3.2-7
Proove by induction that the ith Fibonacci number satisfies the equality>Fi=ϕi−ϕi^5√>
当i=0,i=1,
ϕ0−ϕ0^5√=1−15√=0=F0
ϕ1−ϕ1^5√=1+5√−1+5√25√=1=F1
假设当i=n,i=n+1,满足等式。
则,
Fn+2=Fn+1+Fn=ϕn+1−ϕn+1^5√+ϕn−ϕn^5√=ϕn(ϕ+1)−ϕn^(ϕ^+1)5√=ϕnϕ2−ϕn^ϕ2^5√=ϕn+2+ϕn+2^5√
Exercise 3.2-8
Show that klnk=Θ(n) implies k=Θ(n/lnn).因为
klnk=Θ(n)⇒n=Θ(klnk)
对于lnn,有
lnn=Θ(ln(klnk))=Θ(lnk+lnlnk)=Θ(lnk)
两者相除,有
nlnn=Θ(klnk)Θ(lnk)=Θklnklnk=Θ(k)⇒k=Θ(nlnn)
相关文章推荐
- 《算法导论》第三章-第1节_练习(参考答案)
- 《算法导论》第一章-第2节_练习(参考答案)
- 《算法导论》第四章-第2节_练习(参考答案)
- 《算法导论》第二章-第2节_练习(参考答案)
- 《算法导论》第四章-第5节_练习(参考答案)
- 《算法导论》第四章-第3节_练习(参考答案)
- 《算法导论》第四章-第4节_练习(参考答案)
- 《算法导论》第五章-第4节_练习(参考答案)
- 《算法导论》第一章-第1节_练习(参考答案)
- 《算法导论》第二章-第1节_练习(参考答案)
- 《算法导论》第五章-第1节_练习(参考答案)
- 《算法导论》第四章-第1节_练习(参考答案)
- 《算法导论》第二章-第3节_练习(参考答案)
- 《算法导论》第五章-第3节_练习(参考答案)
- 《算法导论》第三章-思考题(参考答案)
- 《算法导论》第四章-第6节_练习(参考答案)
- C++ Primer Plus(第六版)第四章编程练习参考答案
- C++Primer Plus 第三章编程练习个人答案
- c++ primer plus(第6版)中文版 第三章编程练习答案
- 《算法导论》第五章-思考题(参考答案)