[英]Solve the recurrence of T(n) = 3T(n/5) + T(n/2) + 2^n
我在 T(n) 是 n <= 2 的接触的假设下解决了 T(n) 的重复。我开始用树方法解决这个 T(n),因为我们不能在这里使用主方法,但是当我做树时,我当然会计算这个 T(n) 的时间 C,但我的 Cs 非常重要和奇怪,所以我得到了
c = 2^n and then for the next c I get ' 3 * 2^(n/5) + 2^(n/3)
我不知道如何用这些值来解决,我做错了什么,或者我应该遵循什么程序来解决这个问题?
您可能希望尽可能减少术语的数量。
3 * 2^(n/5) + 2^(n/3) = 3 * (2^(1/5) * 2^n) + (2^(1/3) * 2^n)
然后将所有系数组合在一起。
(3 * 2^(1/5)) * 2^n + (2^(1/3)) * 2^n
请注意,公因数是2^n
。 所以你会得到:
(3 * 2^(1/5) + 2^(1/3)) * 2^n
我将产品的第一部分命名为constant
,这将给我们:
constant * 2^n
这只是T(2^n)
因为随着 n 的大小变得非常大,常数是微不足道的。
您可以简化案例。 随着T(n)
的增加,我们知道T(n/2) > T(n/5)
。 因此, T(n) < 4T(n/2) + 2^n
。 现在,您可以使用主定理,并说T(n)=O(2^n)
。 另一方面,如果没有这个替换,因为在T(n)
存在2^n
,我们可以说T(n) = \\Omega(2^n)
。 因此, T(n) = \\Theta(2^n)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.