【问题标题】:how do you prove that the big theta of a series is its leading term?你如何证明一个系列的大 theta 是它的主导词?
【发布时间】:2011-04-30 05:19:15
【问题描述】:

如果 f(x) = (An) x^n + (An-1) x^(n-1) +...+ (A1)x + (A0) 你如何证明 f(x) 是大 theta(x^n)。

我已经考虑过了,可以通过证明 f(x) 大 O(x^n) 和 x^n 大 O(f(x)) 来做到这一点。我已经找到了前者的证明(使用三角不等式),但不明白如何做后者。

或者可以证明 f(x) 是大欧米茄 (x^n)。

我一直被这个问题困扰,你能给我的任何提示或线索都会有很大帮助。

【问题讨论】:

  • 最好把它移到 mathoverflow ...
  • 白痴所说的。我拥有数学硕士学位(前段时间,因此我在这里的回答显得有些轻率)。对我来说,MathOverflow 的规则意味着“如果我知道如何回答它,那么它对于 MathOverflow 来说太基础了”。您在普通本科数学中理所当然地涉及的任何内容都是题外话:“目标受众是专业数学家、数学研究生和高年级本科生”。
  • math.stackexchange.com 虽然声称适用于任何级别

标签: algorithm computer-science performance theory big-o


【解决方案1】:

考虑 |An x^n + A(n-1) x^(n-1) + ... |/|x^n|作为 x -> oo。

表达式非常接近 |An|如果 An 不为零,那么对于足够大的 x,表达式将至少为 |An|/2。

【讨论】:

    【解决方案2】:

    你可以证明它既是大 O(x^n) 又是大 Omega(x^n)。

    【讨论】:

      【解决方案3】:

      为了证明 f(x) 是 O(x^n),观察对于 x >= 1,每个 0

      因此,f(x)

      但是 (n+1) * max(A_0 ... A_n) 是关于 x 的常数,所以我们有我们的 bound[*]

      证明 x^n 是 O(f(x)) 实际上非常困难,因为 它不是真的 除非 A_n != 0。但是如果 A_n != 0,则需要证明:

      x^n is O(An x^n + ... + A0 x^0)
      

      根据一些我懒得说明的关于极限的定理,这是真的,当且当当

      (1/An) x^n is O(x^n + ... + (A0/An) x^0)
      

      当且仅当

      (1/An) x^n - ... - (A0/An) x^0 is O(x^n) [**]
      

      但是现在 LHS 是我们刚刚在第一部分证明的形式为 O(x^n) 的多项式。 QED。

      不过,在实践中,您实际上要做的是证明一些关于已知 big-O 复杂度的两个函数之和的 big-O 复杂度的引理。然后你只要观察两边的所有项都是O(x^n),其余的可以忽略。

      [*] 实际上,这是一个骗局,因为重要的是比较函数的绝对值。但是对于足够大的 x,f(x) 与 A_n 具有相同的符号,所以如果这是 负我们只是做一个类似的不等式。

      我认为你真的不需要使用三角不等式来“逃避”abs,因为多项式函数在一定范围之外必然是单调的(也就是说,它们只有有限多个拐点),并且当考虑到 big-O 限制,我们只关心超出特定范围的情况。

      [**] 另一个软糖,真的,我应该在 RHS 上写下极限常数 M,并在将术语传递给 LHS 时将其包括在内。好的,所以这只是一个证明的草图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多