看板 CSSE 關於我們 聯絡資訊
※ 引述《Lizstlin (Lizst)》之銘言: : (因為是第一次在這邊PO文, 不大確定能否問這樣的問題, 如果不行就麻煩版主刪了, : 不好意思喔 ^^") : 因為老師上課沒講什麼證明範例, 書上也寫得少 : 自己找題目寫遇到不少瓶頸, 我知道基本觀念是 : f(n) = O(n) iff there exist positive constants c and n0 s.t : f(n) <= c*g(n) for all n which n >= n0 : 那個c 在證明過程中可以隨便假設嗎? : 因為總覺得要有一定範圍才可以, 像下面的證明我設1就不知道怎麼繼續下去 : 證明題如下: : show that n! = O(n^n) : show that n^(2^n) + 6*2(^n) = θ(2^(2^n)) : show that n^2 * logn = θ(n^2) is incorrect : 希望有大大不吝指教, 大致上提點我該如何下手, 謝謝 (拜) : 如果不懂我再來問各位大大 ^^" : 方才自己試了一下第一題, 不知道這樣對不對? : n! <= c*(n^n) : 移項得 c* n[n^(n-1) - (n-1)!] >= 0 : 由 [n^(n-1) - (n-1)!] 得 n >= 1, 而 c >= 1 : 所以 n! = O(n^n) for all n which n>=1, and c>=1 : 這樣的感覺還是很像c 還有 n0 是推敲出來的 ~"~ n!可以用 Stirling's approximation 來證, (http://zh.wikipedia.org/zh-tw/%E6%96%AF%E7%89%B9%E9%9D%88%E5%85%AC%E5%BC%8F) 根號裡的值大於零, 後面是n^n. c在過程中不是用假設的, 那句 「s.t f(n)<=c*g(n)」的意思是「使得 f(n)<=c*g(n)成立」 所以只要能找到一個c可以讓f(n)<=c*g(n)就可以了, 不是要算出c的最小值什麼的. 用你的證明來看, 先證明 n! <=c*(n^n) 是蠻奇怪的.... 如果題目是 n!=O(?), 那你不就從n^n^n^n^n開始試到n^n? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.124.164.176
Lizstlin:那麼請問除了 Stirling's approximation 10/06 23:30
Lizstlin:還有其他方法嗎? 因為那個我還沒學到~"~ 謝謝^^ 10/06 23:30
manlike:所以他用計算的方式找到n0和c 錯了嗎? = =" 10/07 01:19
manlike:第一題考試寫根據Stirling's Approximation 得f(n)=O(n^2) 10/07 01:22
manlike:更正f(n!)=O(n^2), 會得分嗎? 殺雞用牛刀... = =" 10/07 01:23
manlike:喔不對~ n! = O(n^2) ...= ="" 10/07 01:25
Lizstlin:我今天去問助教, 他說OK 10/07 16:09
Lizstlin:另外就是 n0 跟 c 只要 >=1 基本上都行 10/07 16:10
Lizstlin:不過不是直接設, 是推算出來就是了 ^^" 10/07 16:11
Lizstlin:感謝板上大大們不吝指教 ^^ 10/07 16:12