简化大 O 符号

Simplify Big O notation

我为我糟糕的数学技能提前道歉...

我正在尝试了解大 O 表示法背后的数学原理。我从 this 了解到 2n^2 = O(n^3) 并证明了 n = O(n^2),但我似乎也证明了 n^3 = O(n^2) 这没有意义而且我很确定错误的。我是这样 "proving" 的:

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

我做错了什么?

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))

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

在这种情况下,我们清楚地看到 n^3 大于 n^2,因此它们实际上处于不同的 O 类。