【问题标题】:How can you prove 3^n is not O(n^2)?.你怎么能证明 3^n 不是 O(n^2)?
【发布时间】:2016-09-14 05:55:04
【问题描述】:

我显然可以通过检查判断这不是真的,但我不知道如何通过证人来证明它。谢谢!

【问题讨论】:

  • @slawekwin 为什么不是 cs.stackexchange.com/
  • @shole 也许你是对的,我有时对 SE 有多少社区感到困惑 ;)
  • 顺便说一句,我认为它不需要证明,因为 f(3^n) = O(3^n) 和 O(3^n) 与 O(n) 相比已经是另一个时间复杂度类^2)。如果你真的需要证明,只需证明 f(3^n) = O(3^n),结果不言自明
  • 为什么不考虑肮脏、腐朽的流氓方法 - 只需使用 Wolfram 绘制 3^n - n^2 图表,就像我在这里所做的那样:wolframalpha.com/input/?i=3%5En+-+n%5E2 显然,图表为零的任何点都表示一个点其中两个函数是等价的。由于交点处的 n 值小于零,因此工作完成。无论您选择或回避哪种方法,除非您能找到一种使 n 为负值的方法,否则这是不费吹灰之力的。

标签: big-o computer-science


【解决方案1】:

大 O 是数学上的优势,所以你只需要证明在某个 N 之后不存在 3^n

这是不可能的,因为当 n 趋于无限时,serie : u(n) = 3^n/n^2 严格增长。

演示:u(n+1) 等价于(无限时)3^(n+1)/n^2 u(n) 在无限时等价于 3^n/n^2

u(n) 是严格增长的,因此没有 C 存在

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2012-04-13
    • 1970-01-01
    相关资源
    最近更新 更多