【问题标题】:Big O Proof by Induction With Summation归纳总结大 O 证明
【发布时间】:2023-03-12 01:20:01
【问题描述】:

我一直在努力解决这个问题:

Σ(k=0,n)3k = O(3n)

我一直在网上查看各种东西,但我似乎仍然无法解决它。我知道它涉及到 Big O 的正式定义,其中

|f(x)| <= C*|g(x)|, x>=k

由于它们相同,我假设 C 是我必须通过归纳找到的某个值,以证明原始陈述,并且 k=0。

感谢您对此的帮助。

【问题讨论】:

  • 我觉得这个问题更适合cs.stackexchange.com
  • "既然他们是一样的" 这表明你认为这个任务有什么特别之处,因为= 符号。没有,这是大 O 的正常表示法。

标签: algorithm big-o computer-science


【解决方案1】:
Σ(k=0,n)3k = 30 + 31 + ... + 3n = (1 - 3n+1) / (1 - 3) ;几何级数之和 = (3/2)*3n - k n ;对于 c >= 3/2 = O(3n)

【讨论】:

    【解决方案2】:

    这里不需要归纳;该总和是一个几何级数并且具有闭式解

    = 1(1-3^(n + 1))/(1-3) = (3^(n + 1) - 1)/2
    
    
    = (3*3^n - 1)/2
    

    Pick C = 3/2 and F = 3/2*3^n - 1/2, G = 3^n, 这样就满足了O(3^n)的要求,但实际上在实践中,虽然可能会被认为是非正式和草率的,但您不必太担心确切的常数,因为任何常数都可以满足 Big-O。

    【讨论】:

      【解决方案3】:

      您可以将其重写为 3n * ( 1 + 1/3 + 1/9 + ....1/3n)。

      这个总和有一个上限。计算那个无限级数的极限。

      从那里,很容易得到一个好的 C,例如:2。

      【讨论】: