对于我的算法分析课程,我从算法推导出函数f(n)= n ^ 2 - n + 2.现在我需要证明或反驳 f(n)∈O(n) 即可。显然它不是,所以我一直试图反驳这一点几个小时,但无法弄清楚如何去做。
为了反驳它,我需要证明消极:
∀M > 0, ∀N > 0, ∃n > N s.t. n^2 - n + 1 < M·n
我尝试过后退,但似乎无法到达任何地方。我也试图证明,根据我的判断,f(n)∈O(n):
∃M > 0, ∃N > 0 s.t. ∀n > N, n^2 - n + 1 ≥ M·n
......没有成功。我在做什么这么可怕的错误?
答案 0 :(得分:3)
已经有一段时间了,但至少它不是大... ...
f(n) ∈ O(g(n) <--> (∃c,m>0) | (∀n>m) 0 < f(n) <= cg(n)
let f(n) = n^2 - n + 2
let g(n) = n
(∃c,m>0) | (∀n>m) 0 < n^2 - n + 2 <= cn
(∃c,m>0) | (∀n>m) 0 < n^2 - n <= cn
(∃c,m>0) | (∀n>m) 0 < n^2 <= cn + n
(∃c,m>0) | (∀n>m) 0 < n^2 <= 2cn + n
(∃c,m>0) | (∀n>m) 0 < n^2 <= (2c+1)n
let C = 2c+1
(∃C,m>0) | (∀n>m) 0 < n^2 <= Cn
(∃C,m>0) | (∀n>m) 0 < n <= C
(∃C,m>0) | (∀n>m) 0 < n <= C
There is no constant C s.t. 0 < n <= C for all sufficiently large n.
Therefore, n^2 - n + 2 is not O(n)
答案 1 :(得分:3)
假设有一些C&gt; 0和M> 0使得对于所有n> M,
所有n的n ^ 2 - n + 1 <= Cn>中号
除以n
n - 1 + 1 / n&lt; = C,所有n>中号
等等
所有n的n-1&lt; = C&gt;微米。
这是不可能的。
答案 2 :(得分:1)
矛盾证据怎么样?设置你的一般情况,使你试图表明它是真的,然后通过一个在每种情况下必须为假的陈述,那么整个证明必须是假的。