如何获得这个函数的大O,大Ω和大Θ?

时间:2013-10-11 06:06:17

标签: math big-o

我的函数f(n)定义如下:

  

f(n)=(n-1)(n + 1)lg(n + 5)/(n + 3)

这里,lg是log 2 。我想确定这个函数的big-O,big-Ω和big-Θ值。我将如何接近这个?

谢谢!

1 个答案:

答案 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,这是一个更强大的主张。

希望这有帮助!