2010-10-05 63 views
0

我會證明下面的例子:複雜性證明

n^k = O (c^n) for every k and c>1 

值得注意的是多項式函數增長高於指數函數更快。我們試圖找到K0> 0,滿足條件

fn > = k0 * g(n) 

n^k <= k0 * c^n 
log(n^k) <= log (k0 * c^n) 
log(n^(k/n)) <= log (k0 * c) 
k0 >= 1/c*n^(k/n) 

所以,K0> 0,積極和足夠小,而c的值是無關緊要......可以嗎?

+0

沒有花時間寫出來,第3步困擾我,我不相信你可以用日誌做到這一點。 (請注意,有沒有讀過Lamport關於證明的論文?值得一讀)。 – 2010-10-05 20:50:17

+0

Paul是正確的,你不能在第3步中使用日誌。log(c^n)= n * log(c)。因此,步驟3應該是:(log(n^k))/ n <= log(k0 * c) – mpd 2010-10-05 21:00:37

+0

Thanx,在步驟3中有一個錯誤,我寫得很快,沒有檢查它。 – Ian 2010-10-05 21:17:08

回答

0
log(n^k) <= log (k0 * c^n) 
k log n <= log k0 + n log c 

k log n - n log c <= log k0 
log (n^k) - log (c^n) <= log k0 
log ((n^k)/(c^n)) <= log k0 | expo 
(n^k)/(c^n) <= k0 
n^k <= k0 * c^n 

=> n^k = O(c^n) 

你的第3步似乎是錯誤的,至少我沒有看到你從哪裏得到它。你的結論似乎也不能證明所要求的。