Big o 大O表示法查找c和n0

Big o 大O表示法查找c和n0,big-o,Big O,我刚刚被介绍了Big-O表示法,有人问了我一些问题。但是,我对如何确定n0的值感到困惑。 我必须证明3n^3+20n^2+5是O(n^3)。到目前为止,我已经: 3n^3 + 20n^2 + 5 <= cn^3 (3 - c)n^3 + 20n^2 + 5 <= 0 5 <= n^3(c - 3) - 20n^2 5 <= n^2(n(c - 3) - 20) 3n^3+20n^2+53n^3+20n^2+5 值得注意的是,根据Big-O表示法的定义,并不要求界实

我刚刚被介绍了Big-O表示法,有人问了我一些问题。但是,我对如何确定
n0
的值感到困惑。 我必须证明
3n^3+20n^2+5
是O(n^3)。到目前为止,我已经:

3n^3 + 20n^2 + 5 <= cn^3

(3 - c)n^3 + 20n^2 + 5 <= 0

5 <= n^3(c - 3) - 20n^2

5 <= n^2(n(c - 3) - 20)
3n^3+20n^2+5
3n^3+20n^2+5
值得注意的是,根据Big-O表示法的定义,并不要求界实际上如此紧密。由于这是一个简单的函数,您可以猜测并检查它(例如,为c选择100,并注意条件确实是渐近真的)

例如:

3n^3 + 20n^2 + 5 <= (5 * 10^40) * n^3 for all n >= 1
(这是一个相当糟糕的“证明”,但希望这个想法能说明。)

如果你有
f(n)=(3n^3+20n^2+5)
并且你想看看它是否是
O(g(n))
其中
g(n)=n^3
,我相信你可以把
f(n)/g(n)
的极限看作n->无穷大

因为限制是3,您可以看到
3n^3+20n^2+5
的增长速度仅与
n^3
的增长速度相同。当你有一个类似于
3n^3+20n^2+5
的多项式时,你可以通过检查判断最大阶项总是
O(f(n))
的值

找到n0和C并没有多大帮助,但它是确定事物顺序的相对简单的方法。正如其他人在这里所说的,你可以选择n0,然后计算C

如果您选择n0=1,则您有
3*(1^3)+20*1^2+5=28
。所以如果
c1^3除以n^3
我们得到

3+20/n+5/n^3Aw,比我快30秒:)+我认为它应该是c>=2?5>2,所以没有什么不同。任何一个n0和任何一个c都可以。现在我更困惑了,问题的答案是我应该选择n0=21和c=4:S@DomBrown嗯,也许我误解了n0是什么。n0是
3n^3+20n^2+5
cn^3
相交的点,对吗?这个交集是
c
(间接)的函数,所以对于
n0
c
,没有一个解决方案。我的笔记是这样说的:给定函数f(n)和g(n),我们说f(n)是O(g(n)),如果存在正常数c和n0,使得f(n)≤ n的cg(n)≥ n0@DomBrown正确的。大O只需渐近满足条件。这意味着对于部分域,f(n)可以>cg(n)。只要到达某个点(这里称之为
n0
),f(n)就必须>=cg(n)。为了证明Big-O关系,你所要做的就是证明
c
n0
的存在。(值得注意的是,在我的回答中,我并没有从技术上证明它们的存在。我将在稍后编辑我的回答。)感谢您的帮助。我只想澄清最后一件事。这个问题有可能有多个答案吗?i、 e.n0和c可能还有其他两个值?
3n^3 + 20n^2 + 5 <= cn^3
=> 20n^2 + 5 <= cn^3 - 3n^3
=> 20n^2 + 5 <= n^3(c - 3)
=> 20n^2/n^3 + 5/n^3 <= n^3(c - 3)/n^3
=> 20/n + 5/n^3 <= c - 3
=> c >= 20/n + 5/n^3 + 3
c >= 20/1 + 5/1 + 3 which yields c >= 28
3n^3 + 20n^2 + 5 <= (5 * 10^40) * n^3 for all n >= 1
3n^3 + 20n^2 + 5 <= 28n^3
20n^2 + 5 <= 28n^3 - 3n^3
20n^2 + 5 <= 25n^3
20/n + 5/n^3 <= 25

When n = 1: 20 + 5 <= 25 or 25 <= 25
For any n > 1, 20/n + 5/n^3 < 25, thus for all n > 1 this holds true.

Thus 3n^3 + 20n^2 + 5 <= 28n^3 is true for all n >= 1