考虑以下功能:
f(n) = 2^n
g(n) = n!
h(n) = n^logn
关于f(n),g(n)和h(n)的渐近行为的下列陈述中哪一项是正确的?
(A) f(n) = O(g(n)); g(n) = O(h(n))
(B) f(n) = \Omega(g(n)); g(n) = O(h(n))
(C) g(n) = O(f(n)); h(n) = O(f(n))
(D) h(n) = O(f(n)); g(n) = \Omega(f(n))
我已经知道了这个
根据生长顺序:h(n)< f(n)&lt; g(n)
(g(n)渐近大于f(n)且f(n)渐近大于h(n))
通过记录给定的3个函数
,我们可以很容易地看到上面的顺序lognlogn < n < log(n!) (logs of the given f(n), g(n) and h(n)).
请注意log(n!)= \ theta(nlogn)
但是如何找出正确的选项?
答案 0 :(得分:1)
从微积分中很容易看出,如果
lim {n -> inf} a(n) / b(n) < inf
然后
a(n) = O(b(n))
另请注意,此处的所有功能都会转到无穷大,因此我们可以使用L'Hôpital's rule。
最后,请注意,渐近地,Stirling's Approximation给出了
lim {n -> inf} n! / (sqrt(2 pi n) (n / e)^n) = 1
如果你将这三件事结合起来,你可以看到:
lim {n -> inf} 2^n / n! = lim {n -> inf} 2^n / (sqrt(2 pi n) (n / e)^n) = 0
和
lim {n -> inf} n^{log(n)} / 2^n = < inf
所以D是正确的。