简化大 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 类。
我为我糟糕的数学技能提前道歉...
我正在尝试了解大 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 类。