Big-O / Big-Oh符号问题

时间:2011-04-26 13:35:15

标签: big-o

我正在阅读Big-Oh表示法,我在理解这个问题的解决方案时遇到了问题:

Is 2n + 10 ≡ O(n)?
Can we find c and n0?

2n + 10 <= cn
(c-2)n >= 10
n >= 10/(c-2)

Pick c = 3 and n0 = 10

此示例中还使用了一个图表:

Graph

我对c = 3以及n0 = 10怎么样感到困惑?有人可以赐教我吗?

3 个答案:

答案 0 :(得分:3)

我会以不同的方式解决2n + 10 <= cn

2n + 10 <= cn
2 + 10/n <= c //divide by n
c >= 2 + 10/n

显然c必须大于2.现在把你最喜欢的数字大于2.嗯。 c=2.718。这给了

2n + 10 <= 2.718*n
10 <= 0.718*n //subtract 2n
13.93 <= n

因此,2n + 10 <= c*n。如果我们将c=2.718n大于15。 (15因为它大于限制,13.93,我喜欢15。)

任何大于2的c工作,c = 100000000000000000000000也可以(但是,写下墨水和纸张需要花费很多。)

考虑c=3可能更容易。那会给出

2n + 10 <= 3*n
10 <= n //subtract 2n

这使得3成为最合乎逻辑/最自然的解决方案。

答案 1 :(得分:2)

f(n)函数O(n)表示您可以找到所有cn0的{​​{1}}和n >= n0。< / p>

要在您的情况下验证这一点:如果n> = 10,则:

f(n) <= cn

所有f(n) = 2n + 10 <= 3n // because 10 <= n = cn 所以f(n) <= cnn >= 10f(n)函数。

请注意,O(n)c的其他值有效;你只需找到一对。

答案 2 :(得分:0)

在Big-O表示法中,您添加了数字并将其相乘。 并且还使用最大的功率。

10*N^3+ 23*N^2 + 43*N + 154 = O(N^3)