【问题标题】:The complexity of n choose 2 is in Theta (n^2)?n 选择 2 的复杂度在 Theta (n^2) 中?
【发布时间】:2019-08-19 00:20:50
【问题描述】:

我正在阅读Introduction to Algorithms 3rd Edition (Cormen and Rivest),在“强力解决方案”的第 69 页上,他们声明 n 选择 2 = Theta (n^2)。我认为它会在 Theta (n!) 中。为什么 n 选择 2 紧密绑定到 n 平方?谢谢!

【问题讨论】:

  • n 选择 2 = n(n+1)/2 = (n^2 + n)/2...
  • @DennisMeng- 这是 n(n-1)/2 而不是 n(n+1)/2。
  • 当然!我出于某种原因认为 n 选择 k 是 (n!)/(k!)。
  • 您可以通过精彩的 Wolfram Alpha 网站获得线索:wolframalpha.com/input/…

标签: algorithm math complexity-theory big-o big-theta


【解决方案1】:

n 选择 2 是

n(n - 1) / 2

这是

n2 / 2 - n/2

我们可以看到 n(n-1)/2 = Θ(n2) 通过在 n 趋于无穷时取它们的比率的极限:

limn → ∞ (n2 / 2 - n / 2) / n2 = 1/2

由于这是一个有限的非零量,我们有 n(n-1)/2 = Θ(n2)。

更一般地说:n 为任何固定常数选择 k,k 是 Θ(nk),因为它等于

n! / (k!(n - k)!) = n(n-1)(n-2)...(n-k+1) / k!

这是 n 中具有非零前导系数的第 k 次多项式。

希望这会有所帮助!

【讨论】:

  • 当然!我出于某种原因认为 n 选择 k 是 (n!)/(k!)。
  • @JennyShoars- 那肯定会令人困惑。希望这能解决问题!
  • 这不是n^2/2 - n^2/2吗?谢谢。
  • 您的最后一个声明仅在k = n / 2 之前为真,此时选择函数的分母中的kn - k 在取消中占主导地位并且复杂性再次开始降低,最终减少到n choose n == 1。正确的概括是它是一个theta(min(k, n-k)) 阶多项式。
  • @pjs 好点。我认为这取决于我们认为什么是可变的,什么是我们认为是固定的。如果 k 是一个固定常数并且 n 是一个变量,那么对于足够大的 n 值,我们将根据需要得到 n > k/2。 (我们可以通过找到合适的 c 和 n_0 值来实现这一点。)
猜你喜欢
  • 1970-01-01
  • 2015-05-08
  • 2021-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
相关资源
最近更新 更多