方形地形递归推导

时间:2013-02-28 07:03:05

标签: algorithm recursion

你有一个方形地形,面积为A&gt; 0.您想要在地形中添加信息。您希望将地形细分为4个象限,单独处理它们并组合结果。为了处理,你进一步划分一个象限,直到子象限的面积<= A0,然后你可以在那里向地形添加信息 - 总共i * a时间为i&gt;每个细分步骤导致四个象限中的每一个都包含1/3的面积。如果T(A)是标记区域A的地形的时间,那么它的重现是什么?

我的回答是4T((A / A0)/ 3)+ iA,但我不明白它是如何得出的。有人可以解释问题的每个组成部分如何与最终结果中的添加相关联吗?我理解了4个递归调用,但之后并不多。

1 个答案:

答案 0 :(得分:0)

如果T(A}是标记区域A地形的时间,那么让我们递归计算T(A)

  • 当分析的A区域小于或等于A0A <= A0)时,我们会T(A) = c代表某个常量c因为我们不再细分了。从您的陈述中我认为我们可以假设T(A) = i*A (if A <= A0)

  • 当区域A大于A0时,我们首先将A划分为区域A/3的四个子象限,处理它们并最终收集所有因此T(A) = 4*T(A/3) + i*A (if A > A0)

  • 的地形信息

因此,最终的重复可以写成:

T(A) = i*A               (A <= A0)
T(A) = 4*T(A/3) + i*A    (A >  A0)

注意:我认为您提供的公式T(A) = 4*T((A/A0)/3) + i*A并不完全正确,因为您要将A除以3*A0,这可能远大于3 A0A0仅用于处理子象限区域小于{{1}}的案例。