我正在阅读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
此示例中还使用了一个图表:
我对c = 3以及n0 = 10怎么样感到困惑?有人可以赐教我吗?
答案 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.718
和n
大于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)
表示您可以找到所有c
,n0
的{{1}}和n >= n0
。< / p>
要在您的情况下验证这一点:如果n> = 10,则:
f(n) <= cn
所有f(n) = 2n + 10
<= 3n // because 10 <= n
= cn
所以f(n) <= cn
,n >= 10
是f(n)
函数。
请注意,O(n)
和c
的其他值有效;你只需找到一对。
答案 2 :(得分:0)
在Big-O表示法中,您添加了数字并将其相乘。 并且还使用最大的功率。
10*N^3+ 23*N^2 + 43*N + 154 = O(N^3)