【发布时间】: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)<= c*n*lg(n) for n>=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.stackexchange.com 可能会更好
标签: math substitution