算法导论 第三章 函数的增长 3.2习题个人解答

来源:互联网 发布:锥套皮带轮锥度算法 编辑:程序博客网 时间:2024/05/22 10:51

3.2-1 证明:若f(n)和g(n)是单调递增的函数,则f(n)+g(n)也是单调递增的,此外,若f(n)和g(n)是非负的,则f(n)*g(n)也是单调递增的.

 

证:

1.取任意实数m>n,总有 f(m)+g(m)-[f(n)+g(n)] ≥ 0,故它是单调递增的.

2.取任意实数m>n,

l 若f(m),f(n),g(m),g(n)都为正,那么就有

f(m)*g(m)/[f(n)*g(n)] >=1,所以单调递增

l 若其中一个为0,情况较难阐述,但是f(n)*g(n)是单调递增显而易见。

 

3.2-2 证明等式(3.16)


证: a^logb(c)

=  a^[loga(c)/loga(b)]                 换底公式

=  [a^loga(c)]^loga(b)

= c^logb(a)

所以有 a^logb(c) = c^logb(a)


3.2-3 证明等式(3.19),并证明n! = ω(2^n)且

n! = o(n^n)


证:lg(n!) = Θ(nlgn)

1. ∵lg(n!) = ∑(i=1~n)lgi <= ∑(i=1~n)lgn = nlgn

∴lg(n!) = O(nlgn)

2. ∑(i=1~n)lgi = ∑(i=1~n/2)lgi + lg(n-i)

= ∑(i=1~n/2)lgi*(n-i) > ∑(i=1~n/2)lg(n-1)

= n*lg(n-1)/2

所以 lg(n!) = Θ(nlgn)

 

lim(n->∞) 2^n / n! = 0

同理lim(n->∞)n!/n^n = 0

所以n! = ω(2^n)

  n! = o(n^n)


定义ceil(x) = x的向上取整,floor(x) = x 的向下取整

*3.2-4函数ceil(lgn)!多项式有界吗?函数ceil(lglgn)! 有界吗?

 

证:要证明ceil(lgn)!多项式有界,只需证明lg[ceil(lgn)!]=O(lgn)即可。

lg[ceil(lgn)!] = Θ(ceil(lgn)*lg[ceil(lgn)]

  = Θ(lgn*lglgn)

  = ω(lgn)

所以前者多项式无界。

 

lg[ceil(lglgn)!] = Θ(lglgn*lglglgn)

    = o[(lglgn)^2]

    = o[lg^2(lg)n]

    = o(lgn)

lg[ceil(lglgn)!] = o(lgn)蕴含 lg[ceil(lglgn)!] = O(lgn),

所以后者多项式有界。

 

*3.2-5如下两个函数中,哪一个渐近更大些: lg(lg*n)还是 lg*(lgn)


lg*(lgn) = lg*n - 1

显然渐近时,lg*n - 1 > lg(lg*n) 

所以 lg*(lgn)更大些

 

3.2-6证明:黄金分割率φ及其共轭数 `φ都满足方程x^2 = x + 1

这个代入就OK了,略

 

3.2-7 用归纳法证明:第i个斐波拉契数满足

Fi = (φ^i - `φ^i) / √5

其中φ是黄金分割率,且`φ是其共轭数


证:

1.当i = 1 时,F1 = 1 = (φ - `φ) / √5

2. 设i = k-1,k-2时成立,即

Fk-1 = (φ^(k-1) - `φ^(k-1)) / √5

Fk-2 = (φ^(k-2) - `φ^(k-2)) / √5

Fk = Fk-1 + Fk = (φ^(k) - `φ^(k)) / √5

得证

 

3.2-8 证明:klnk = Θ(n) 蕴涵着 k = Θ(n/lnn)

 

证: 此证明需要用到Θ的自反性

∵n = Θ(k*lnk)

∴n/lnn = Θ[k/lnk * ln(k/lnk)]

       = Θ[k - k/ln^2(k)]

       = Θ(k)

得证

1 0
原创粉丝点击