我有一些与Big O符号相关的问题:
n^3 = Big Omega(n^2)
这是因为:
n^3 >= c * n^2 for all n >= n0
-> Lim(n-> infinity) = n^3/n^2 >= c
然后我使用L'医院获得了6n/2 >= c
,如果我选择c
作为1
而n0
作为1
< / p>
我的想法是否正确?
现在我有两双:
log n
和n/log n
,它们是否位于Theta, O
或其他地方?告诉我他们撒谎的地方,然后我可以自己做证明。
n^(log n)
和2^n
反之亦然
最后:
f(n) = O(n) -> f(n)^2 = O(n^2)
f(n)g(n) = O(f(n)g(n))
问题是:这些陈述是否正确?
我会对第一个说“是”,我不知道为什么,这似乎有一个隐藏的伎俩,但我真的不知道,有人可以帮助我吗?
如果g(n)
位于O(n)
,第二个应该是真的,但我也不知道。
答案 0 :(得分:0)
好像你就在这里。
对于log(n)
和n/log(n)
,您可以通过查找lim log(n)/(n/log(n))
进行检查,反之亦然。
使用a^b = e^(b*ln(a))
:
的事实
n^log(n) = e^(log(n) * log(n)) < e^(n^2) = e^e^(2*log(n)) < (e^e)^(2*n) = O(C^n)
,2^n
也是Big O(C^n)
。
让我们使用Big O(f)的定义和一些属性:
O(f) = f * O(1)
O(1) * O(1) = O(1)
现在我们有:
f(n)^2 = f(n) * f(n) = O(n) * O(n) = n * O(1) * n * O(1) = n^2 * O(1) = O(n^2)
。
f(n)g(n) = f(n)g(n) * O(1) = O(f(n)g(n))
。
所以,是的,这是正确的。