2015-08-25 94 views
1

我为我可怜的数学技能提前道歉...简化大O符号

我想了解Big O Notation背后的数学如何工作。我从this了解到,2n^2 = O(n^3)已经证明n = O(n^2),但我似乎也证明n^3 = O(n^2)这是没有意义的,我敢肯定是错误的。以下是我如何“证明”这一点:

n^3 = O(n^2) 
n^3 <= c*n^2 
n <= c  #n^2 cancels out 
1 <= c/n 
c = 1; n0 = 1 

我在做什么错?

+0

1不小于例如1/10000(当n = 10000> = 1 = n0时)。 –

+0

你必须满足所有n> n0,显然,n <= c是一个矛盾。 – karakfa

+0

我明白我现在做错了什么,谢谢! – taylordurden

回答

4

1 <= c/n并不适用于所有n > n0,例如,对于n = 2(与N0 = 1,C = 1),你会得到:

1 <= 1/2 

,这是一个伪命题。

在大O表示法的关键是,你需要证明,对于所有n > n0,方程f(n) <= C*g(n)持有(对于某些C,n0),以显示f(n)O(g(n))

+0

啊,我忘记了关于“All'n> n0'”的关键位。谢谢! – taylordurden

-1

通常大O符号被定义为具有共同渐近行为的一组函数。也就是说,随着n的增长,功能将如何增长。

在这种情况下,我们清楚地看到n^3超过n^2,所以它们实际上在不同的O类中。

+3

这不回答这个问题。 “我做错了什么?' – amit