复杂性证明

问题描述:

我会证明下面的例子:复杂性证明

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 mpd 2010-10-05 21:00:37

+0

Thanx,在步骤3中有一个错误,我写得很快,没有检查它。 – Ian 2010-10-05 21:17:08

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步似乎是错误的,至少我没有看到你从哪里得到它。你的结论似乎也不能证明所要求的。