演算法導論第三章練習
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ⁿ)
3.2-4
3.2-5
3.2-6
3.2-7
3.2-8
相關文章
- 演算法導論第二章練習演算法
- 《演算法導論》學習筆記演算法筆記
- 《演算法導論》演算法
- 演算法導論學習之五:快速排序演算法排序
- Opencv第三章練習題答案OpenCV
- 演算法導論學習之六:歸併排序演算法排序
- 演算法導論學習之二:插入排序演算法排序
- 演算法導論學習之一:氣泡排序演算法排序
- 演算法練習演算法
- 演算法導論課後習題解答 第一部分 練習1.1-1->1.1-5演算法
- 演算法導論-堆排序演算法排序
- 演算法導論-快速排序演算法排序
- 演算法導論-第6章演算法
- 演算法導論FFT程式碼演算法FFT
- 《工程導論》----第三章:工程、技術、與工程師工程師
- 演算法導論學習之補漏:高精度冪運算演算法
- 演算法導論第三十一(31)章數論演算法演算法
- 演算法基礎第三章搜尋與圖論演算法圖論
- 學演算法要讀《演算法導論》嗎?演算法
- 演算法導論學習之補漏:斐波那契數列演算法
- 10.第三章直言命題及其推理(練習題)
- swift演算法練習筆記Swift演算法筆記
- 【演算法練習】(8)眾數演算法
- 深度學習-第三章機率與資訊理論深度學習
- 【演算法導論】24.1 Bellman-Ford 演算法演算法
- python物件導向練習題01Python物件
- 史蒂芬斯與演算法導論之思演算法
- 遞迴與分治演算法練習遞迴演算法
- 演算法練習記錄(24.10.5)演算法
- ”回溯演算法“框架及練習題演算法框架
- matlab練習程式(Sinkhorn演算法)Matlab演算法
- 演算法導論第二章思考題演算法
- 演算法導論第二章筆記演算法筆記
- 演算法導論 3.2-7 共軛數演算法
- 演算法導論_第七章_快速排序演算法排序
- 演算法導論C語言實現: 演算法基礎演算法C語言
- 人工智慧導論學習筆記人工智慧筆記
- HTK 第三章 模型訓練示例模型