证明 Big Oh 时如何 select n0 的值 - 哪个是正确的方法?

How to select the values for n0 when proving Big Oh - Which is the correct method?

考虑问题,

证明 f(n) = n2 + 3 是 O(n2).

我知道我们需要找到两个正常数 c 和 n0 使得 n>=n0 和 f(n )<=c*g(n)。

所以会是:

n2+3 <= c*g(n2) .................. {代入 g(n) = n2}

n2+3 <= c*n2.......{假设 n 0 >=1 并替换值}

1+3 <= c*1.......{n2=1*1=1}

4<=c

因此当 C=4 且 n0>=1 时,我得到解 f(n) 是 O(n2)

但是,请考虑以下事项。

n2+3 <= c*n2.......{假设 n 0 >=2 并替换值}

22+3 <= c*22

4+3 <= c*4

7 <= 4*c

如果 c = 2

7<=4*2....满足所有n0 >=2

这也证明f(n)是O(n2).

哪种方法是正确的,为什么?

我如何select c 和 n0 的最优值?

注意:我从 Proving and Disproving BigO 得到这个例子,它使用了另一种我不理解的证明方法。

我认为你的问题有问题。 我认为你的问题是证明 f(n) = n2 + 3 是 O(n2) 并且 g(n) 必须给出n2 在问题本身。 (你不能假设 g(n) 为 n2)。

如何选择c和n0 :

参考这个例子:http://web.eecs.utk.edu/~booth/311-01/notes/bigOex.html

基本上,你可以选择符合你直觉的c和n0。如您所料,c 和 n0 可以有多种可能性。