【问题标题】:Understanding an instance of upper bound, lower bound algorithmic analysis理解上限、下限算法分析的实例
【发布时间】:2018-05-27 18:36:10
【问题描述】:

我正在继续理解渐近分析的任务。如果模组愿意,最好只发布一个元帖子。无论如何:

我有两个功能:

 f(n) = n^2
 g(n) = (log n)^80

根据 l'Hopitals 规则分析:

 lim(n->∞) f(n)/g(n) = f'(n)/g'(n)

这给我们留下了:

 f'(n)/g'(n) = 2n/(80*(log n / √2)

这最终将引导我们:

 0/g''(n) = 0 

据我了解,这表明 f(n) = o(g(n))

我的理解正确吗?

【问题讨论】:

  • 没有。如果分子或分母不为零,则不得应用 L'Hopital。见here
  • @meowgoesthedog 我将如何展示这个?简单的检查将指出 g(n) 增长的速度有多快......
  • 我在您的上一篇文章中提供了一个链接 - here。说明你被提升的力量误导了。
  • @meowgoesthedog 所以与我假设的相反是真的,你只需要有惊人的大输入尺寸?除非我误解了,否则那里的证据是使用 l'Hopital 得出它的结论......
  • 同样,如果任一限制不为零,L'Hopital 就是不正确的。不是我的话。

标签: algorithm big-o computer-science asymptotic-complexity


【解决方案1】:

如果分子和分母都收敛到零或无穷大,您可以应用 L'Hopital 规则。因此,您的方法通常是正确的。但是你错误地计算了 g'(n)。

g'(n) = (80 * log(n)) * 1/(2 ln (n))
  => f'(n)/g'(n) = 2n / ((80 * log(n)^79) * 1/(n ln(2))) 
   = 2n^2 / 80log(n)^79 ln(2)

目前,f'(n)/g'(n) 的极限也是∞/∞。因此,您可以再次应用 L'Hopital 规则。但结果是一样的。但是在第 80 次申请之后,你就有了:

2^80 n^2 / 80! ln(2)^80
  =>  lim(n->∞) f(n)/g(n) = ∞ 

因此,g(n) = o(f(n)).

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多