3-1练习
3.1-1
存在c₁=1/2时,max(f(n),g(n))≥ 1/2(f(n)+ g(n))
存在c₂ = 1时,max(f(n),g(n))≤ (f(n)+ g(n))
所以 max(f(n),g(n))= Θ(f(n)+ g(n))
3.1-2
∵ b > 0, c₁为正常量
∴ c₁n^b ≥ 0
运用反证法
∵ c₁n^b ≤ (n+a)^b ≤ c₂(n^b)
∴ c₁ ≤ (1+a/n)^b ≤ c₂
∵ lim(n->∞)(1+a/n)= 1
∴ c₂可以取1及大于1的数,c₁可以取1及小于1的数
∵ c₁,c₂存在
∴ 反证成立
∴ 对任意实常量a和b,b>0,有(n+a)^b = Θ(n^b)
3.1-3
因为我们这里的O(n²)是对任意的输入有效,而插入排序在输入为增序排列的数组下运行时间为O(n),所以无意义
3.1-4
2^(n+1) = O(2ⁿ)成立
∵ 2^(n+1) > 0
又 ∵ 当c ≥ 2时,2^(n+1) ≤ c2ⁿ
∴ 2^(n+1) = O(n²)
2²ⁿ = O(2ⁿ)不成立
假设成立
那么 2²ⁿ ≤ c2ⁿ
∴ 2ⁿ ≤ c
∵ c为正常数,2ⁿ在n趋于无限大时无限大,不存在这样的c
∴ 不成立
3.1-5
∵ f(n) = O(g(n))
∴ 0 ≤ f(n) ≤ cg(n)
∵ f (n) = Ω(g(n))
∴ 0 ≤ cg(n) ≤ f(n)
∴ 0 ≤ c₁g(n) ≤ f(n) ≤ c₂g(n)
∴ f(n) = Θ(g(n))
3.1-6
同 3.1-5证明
3.1-7
证明:
∵ f(n) = o(g(n))
∴ 0 ≤ f(n) < cg(n)
∵ f(n) = w(g(n))
∴ 0 ≤ cg(n) < f(n)
∴ (cg(n),∞) ∩ [0,cg(n)) = ∅
∴ o(g(n)) ∩ w(g(n)) = ∅
3.1-8
Ω(g(n,m))= {f(n,m):存在正常量c,n0和m0,使得对所有n≥n0或m≥m0,有0 ≤ cg(n,m) < f(n,m)}
Θ(g(n,m))= {f(n,m):存在正常量c,n0和m0,使得对所有n≥n0或m≥m0,有0 ≤ c₁g(n,m) ≤ f(n,m) ≤ c₂g(n,m)}
3.2练习
3.2-1
∵ f(n)和g(n)单调递增
∴ 对于n+1 > n,有f(n+1) > f(n) , g(n+1) > g(n)
∴ 对于n+1 > n,有f(n+1)+g(n+1) > f(n)+g(n)
∴ f(n)+g(n)是单调递增的
同理,
∵ g(n+1) > g(n)
∴ f(g(n+1)) > f((g(n))
即f(g(n))是单调递增的
又 ∵ f(n+1) > f(n) , g(n+1) > g(n),f(n),g(n)非负
∴ f(n+1)g(n+1) > f(n)g(n)
∴ f(n)g(n)是单调递增的
3.2-2
反证法
∵ a^(logb(c)) = c^(logb(a))
∴ a^(loga(c)/loga(b)) = c^(loga(a)/loga(b))
∴ a^(loga(c)) = c
即 c = c
所有等式成立
3.2-3
(1)
(2)要证明 n! = w(2ⁿ)
∴ 要证明 lim(n趋于∞)n!/2ⁿ = ∞
根据斯特林近似公式 n! ≥ (n/e)ⁿ
∴ 只要证明 lim(n趋于∞)(n/e)ⁿ/2ⁿ = ∞
∴ lim(n趋于∞)((n/2e)ⁿ * 2ⁿ) /2ⁿ = ∞
即证明 (n/2e)ⁿ = ∞
∴ 当 n ≥ 2e时,n! = w(2ⁿ)
(3)要证明 n! = o(nⁿ)
∴ 要证明 lim(n趋于∞)nⁿ/n! = ∞
根据斯特林近似公式
∵ Θ(1/n) ≤ 1
∴ n! ≤ 2√2∏n * (n/e)ⁿ
∴ 要证明 lim(n趋于∞)nⁿ/(2√2∏n * (n/e)ⁿ) = ∞
∴ lim(n趋于∞)eⁿ/2√2∏n = ∞
∴ n! = o(nⁿ)