【问题标题】:Proving Big-Theta notation证明 Big-Theta 符号
【发布时间】:2011-03-28 20:44:59
【问题描述】:

您好,我已尽力理解 big-theta,现在我了解了 Big-Oh 和 Big-Omega 证明的主要概念,但我找不到与我的练习相近的示例,因为我不能为那个做证明:

通过展示证人证明 4n^2 + 4n = Big-Theta(2n^2 + 32n)

我知道我必须为 Big-Oh 和 Big-Omega 证明它才能证明 Big-Theta,但我不知道如何开始。我的意思是右边的等式让我感到困惑。

【问题讨论】:

  • 顺便说一句,theta 是一个集合,所以说 4n^2 + 4n = Big-Theta(2n^2 + 32n) 是不恰当的。相反,在 Big-Theta(2n^2 + 32n) 中说 4n^2 + 4n。
  • @ThomasMcLeod,虽然严格来说你说的是真的,但我认为像这样滥用符号是公认的惯例。
  • 我不会说滥用,而是overloading the = operator
  • @Thomas:解释时确实有道理。令人困惑的部分主要是(我认为)因为人们认为 = 是可交换的,但当与 Θ 和 O 表示法一起使用时,它不是。例如,您可以说4n^2 + 4n = Θ(2n^2 + 32n),但不能说Θ(2n^2 + 32n) = 4n^2 + 4n
  • @THomas:不。书写渐近表达式非常方便。例如像 log n! = nlog n - n + O(log n)。 Sum_{primes p

标签: algorithm analysis proofs


【解决方案1】:

通过definition of big-theta,您需要证明存在两个常数,k1 和 k2,使得对于所有足够大的 n 值,

k1 * |2n^2 + 32n| <= |4n^2 + 4n| <= k2 * |2n^2 + 32n|

(由于你的函数对于正 n 都是正的,你可以去掉绝对值。)只要证明每个不等式都可以单独满足,你就完成了。

【讨论】:

  • 我会得到什么等式。我很抱歉这个愚蠢的问题,但我真的不确定我得到的答案。
  • @Zee - 让我们采用左手不等式。如前所述,我们将删除绝对值符号。您需要证明存在一个 k1 和一个 N,这样对于所有 n > Nk1 * (2 n ^2 + 32 n ) n ^2 + 4 n 。这可以重写为 (4-2 k1 )n^2 - 28 n >= 0。对于较大的 n ,这将占主导地位由 n ^2 项,所以如果 4 - 2 k1 是正数,它最终将是正数。所以任何 k1 k1 = 1)。一旦你选择了一个 k1 ,计算阈值 N 就是一个简单的练习。右侧可以使用类似的分析。