我的函数f(n)定义如下:
f(n)=(n-1)(n + 1)lg(n + 5)/(n + 3)
这里,lg是log 2 。我想确定这个函数的big-O,big-Ω和big-Θ值。我将如何接近这个?
谢谢!
答案 0 :(得分:1)
让我们从简化表达开始:
f(n)=(n-1)(n + 1)lg(n + 5)/(n + 3)
=((n 2 - 1)lg(n + 5))/(n + 3)
现在,让我们假设添加常数在那里。如果我们删除这些常量,我们得到这个函数g(n):
g(n)= n 2 lg n / n = n lg n
由于我们不希望这些常数在长期内产生太多差异,因此猜测这个函数是Θ(n log n)是合理的。我们可以通过取f(n)/ n log n的极限来证明这一点,因为n倾向于无穷大。如果我们得到非零有限值,那么我们就知道f(n)=Θ(n log n)。
让我们试一试!
lim n→∞ f(n)/ n log n
= lim n→∞(((n 2 - 1)lg(n + 5))/(n + 3))/ n lg n
= lim n→∞((n 2 - 1)lg(n + 5))/ n lg n(n + 3)
=(lim n→∞(n 2 - 1)/ n(n + 3))(lim n→∞( lg(n + 5)/ lg n)
=(lim n→∞(n 2 - 1)/(n 2 + n))(lim n →∞(lg(n + 5)/ lg n)
这两个限制都是∞/∞类型的简并形式,因此我们可以使用l'Hopital规则并将其替换为其衍生物:
lim n→∞(n 2 - 1)/(n 2 + n)
= lim n→∞(2n / 2n + 1)
= 1
和
lim n→∞ lg(n + 5)/ lg n
= lim n→∞(1 /(n + 5))/(1 / n)
= lim n→∞(n /(n + 5))
= 1
因此,我们得到了
(lim n→∞(n 2 - 1)/(n 2 + n))(lim n→ ∞(lg(n + 5)/ lg n)
= 1
因此,当n变为无穷大时,f(n)/ n lg n的比率倾向于1,因此我们根据需要得到f(n)=Θ(n log n)。因此,我们还得到f(n)= O(n log n)和f(n)=Ω(n log n)。我们还有f(n)~n log n,这是一个更强大的主张。
希望这有帮助!