证明与归纳的复发关系

时间:2012-02-12 11:14:24

标签: logic

我一直在接受我所接受的课程的任务。 有问题的作业:

使用归纳来证明当n> = 2时精确幂为2时,解的 复发:

T(n) = {2 if n = 2, 
        2T(n/2)+n if n =2^k with k > 1 }
is T(n) = nlog(n)

注意:赋值中的对数具有基数2.

这里的基本情况很明显,当n = 2时,我们得到2 = 2log(2) 但是,我坚持这一步,我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

步骤。让我们假设对于所有m< = k,该语句适用于2 ^ m,让我们将其显示为2 ^ {k + 1}。

然后,T(2 ^ {k + 1})= 2T(2 ^ k)+ 2 ^ {k + 1}。

通过归纳假设T(2 ^ k)= 2 ^ k * log(2 ^ k),即T(2 ^ k)= k * 2 ^ k(因为对数在此具有基数2)。< / p>

因此,T(2 ^ {k + 1})= 2 * k * 2 ^ k + 2 ^ {k + 1} = 2 ^ {k + 1} *(k + 1),可写如2 ^ {k + 1} * log(2 ^ {k + 1}),完成证明。