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


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 <100,T(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 )2(11 / 18 )2 Ñ 2(n/4)2(n/6)2(n/9)2(11/18)2n2

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

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

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


14

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

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

12p−1+13p=1

(给出)p≈1.364

然后我们有

T(x)=Θ(xp+xp∫1xt1−pdt)=Θ(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+42≤f(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.