【问题标题】:Using the substitution method for solving recurrences使用代入法求解递归
【发布时间】:2011-09-24 05:49:39
【问题描述】:

我有一个问题。

在我的书中,他们有以下重复:

T(n) = 3*T(floor(n/4))+theta(n^2)

他们尝试猜测 T(n) = O(n^2),然后他们使用替换方法来验证猜测。但他们没有显示基本情况?这不是必要的吗?

我想可能是因为他们不知道当 n=1 时 T(n) 会发生什么。 ??

在我的书中他们也有重复出现T(n)=2*T(floor(n/2))+n and T(1)=1

然后他们猜测T(n)=O(n lg n) 他们使用替换方法来验证它。

他们认为T(n)=O(n lg n) for all positive m<n

T(n) <= 2(c*floor(n/2)*lg(floor(n/2))+n

     <= c*n*lg(n/2)+n

      = c*n*lg(n)-c*n*lg(2)+n

      = c*n*lg(n)-c*n+n

     <= c*n*lg(n)-c*n+n

Where c>=1

好的。然后他们说:“数学归纳法要求我们证明我们的解决方案适用于边界条件”

T(1)<=c*1*lg(1)=0

这与T(1)=1不一致

但随后他们利用渐近表示法,要求他们只证明T(n)&lt;= c*n*lg(n) for n&gt;=n0他们在哪里选择n0

然后他们将 T(1) 替换为 T(2)=4 和 T(3)=5 作为归纳证明中的基本情况,让 n0=2

我的问题是:

为什么我必须用 T(2) AND T(3) 替换基本情况 T(1)?为什么不直接用 T(2)=4 替换它

我可以从递归中推导出 T(2)=4 然后说

T(2)<= c*2*lg(2) = c*2

Where c>=1 and I choose c>=2 

为什么我必须考虑 T(3)?

【问题讨论】:

标签: math substitution


【解决方案1】:

首先,如何计算 T(6)? T(6) = 2*T(floor(6/2)) + 6 => T(6) = 2*T(3) + 6 = 16。

其次,他们写道 - 在 n > 3 之后,它变得独立于 T(1) ...所以在 1 之后和 4 之前都应该作为基本情况给出。

这就是为什么我们也有 2 个输入 T(3)。

请评论...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多