求解包含两个递归调用的递归方程


15

我试图为以下递归方程找到一个约束:Θ

T(n)=2T(n/2)+T(n/3)+2n2+5n+42

我认为,由于子问题和除法数量的不同,Master Theorem是不合适的。由于没有或T(0),因此递归树也不起作用。T 0 T(1)T(0)


5
如果您有这种形式的重复出现,则必须有一个基本情况,对于所有n <100都说T(n)\ leq 42。如果不是这样,那么就不用说递归将解决什么了:也许对于所有n <100T(n)= 2 ^ m,其中m是原始问题的大小!(想象一下,递归的结果就是将要递归的常量与原始元素的所有子集进行比较,以得出常数)换句话说:没有基本情况意味着没有足够的信息来解决递归。T(n)42n<100T(n)=2mn<100m
亚历克斯十布林克

Answers:


15

是的,递归树仍然有效!基本情况是否发生在T(0)T(1)T(2)甚至T(10100)。基本案例的实际值也无关紧要。无论该值是多少,它都是一个常数。

通过大θ眼镜观察,复发率为T(n)=2T(n/2)+T(n/3)+n2

  • 递归树的根具有值n2

  • 根有三个子节点,值分别为(n/2)2(n/2)2(n/3)2。因此,所有子代的总价值为(11/18)n2

  • 健全性检查:根有9个孙子孙:有四个值,四个具有值和一个具有。这些值的总和为。Ñ / 6 2Ñ / 9 211 / 18 2 Ñ 2(n/4)2(n/6)2(n/9)2(11/18)2n2

  • 一个简单的归纳证明意味着对于任何整数,级别的节点的总值。3 11 / 18 Ñ 203(11/18)n2

  • 级别总和形成一个递减的几何序列,因此只有最大项才是重要的。=0

  • 我们得出结论,。T(n)=Θ(n2)


14

您可以使用更通用的Akra-Bazzi方法。

在您的情况下,我们需要找到使得p

12p1+13p=1

(给出)p1.364

然后我们有

T(x)=Θ(xp+xp1xt1pdt)=Θ(x2)

注意,您实际上不需要求解。您只需要知道。1 < p < 2p1<p<2

一个更简单的方法是设置,然后尝试证明是有界的。g x T(x)=x2g(x)g(x)


14

令是循环右手的简写。我们通过使用找到的上下界:˚F Ť ñ / 3 Ť ñ / 2 f(n)=2T(n/2)+T(n/3)+2n2+5n+42fT(n/3)T(n/2)

3T(n/3)+2n2+5n+42f(n)3T(n/2)+2n2+5n+42

如果我们使用较低的响应。作为递归的右上界,在两种情况下,我们都可以通过Master定理得到。因此,从上方被,从下方被或等效地,。ţ Ñ ø Ñ 2Ω T(n)Θ(n2)T(n)O(n2)ţ Ñ &Element; Θ Ñ 2Ω(n2)T(n)Θ(n2)


  1. 为了获得完整的证明,您应该证明是一个递增函数。T


1
该技巧不适用于类似的递归,例如,可以通过递归树来解决。(但即使递归树在上也 T n = 2 T n / 2 + 4 T n / 3 + n 2T(n)=2T(n/2)+3T(n/3)+n2T(n)=2T(n/2)+4T(n/3)+n2
不起作用
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.