【问题标题】:finding complexity using induction使用归纳法寻找复杂性
【发布时间】:2016-06-14 10:35:37
【问题描述】:

我被要求证明:

对于每个 n>=n0 和 T(n) = T(an) + T(bn) + n 对于 n>n0, a+bT(n) = O(n)。

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

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

谢谢。

【问题讨论】:

    标签: complexity-theory induction


    【解决方案1】:

    如果我们假设an 和bn 的不等式成立,那么

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

    但是a + b可以任意接近1,这意味着c可以任意大。这有点违背 O 表示法的观点,因为常数必须是有限的。因此我们取下界:

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

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

    所以我们知道:

    1. n = n0 的假设成立
    2. 如果n 为真,那么n + 1 也为真

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

    【讨论】:

    • 谢谢。只有一个问题,为什么 T(n0)=n0?
    • @Rotem 其他术语T(an0) 和T(bn0) 都有参数< n0,因为你说T(n) 是为n >= n0 定义的,所以我们将它们设为零
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多