使用归纳法发现复杂性

时间:2016-06-14 10:35:38

标签: complexity-theory induction

我被要求证明:

对于n&gt; = n0和T(n) = T(an) + T(bn) + n,对于n&gt; n0,a + b <1,其复杂度为T(n) = O(n)

提示:通过归纳证明:T(n) ≤ cn为合适的c。

在这种情况下,我想知道如何通过归纳证明

谢谢。

1 个答案:

答案 0 :(得分:0)

如果我们假设anbn的不等式为真,那么

enter image description here

现在我们不知道这个常数和c之间的确切关系;但如果我们看一下

的情况

enter image description here

但是a + b可以任意接近1,这意味着c将是任意大的。由于常数必须是有限的,因此这有点击败了O符号。因此我们采取下限:

enter image description here

因此我们找到了假设可以为真的c范围。 1的下限是因为您的域n >= n0表示T(n0) = n0。这里常量为1,因此c必须至少为1才能满足假定的初始界限。这也限制了ab的值为正。

但是为了使假设成立,a, b可以在[0, 1)中使用任何值,这意味着如果T(n)的边界正确,那么它是也适用于任何较大的参数,例如T(n + 1)

所以我们知道:

  1. n = n0
  2. 的假设是正确的
  3. 如果n为真,则n + 1
  4. 也为真

    因此,通过归纳,T(n) <= cn适用于任何n >= n0,其中c满足之前的界限。