您的位置:首页 > 其它

《算法导论》第三章-第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

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⋅⋯⋅2n 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⋅⋯⋅nn 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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法导论