Algorithm 如何求解T(n)=5T(n/2)和#x2B;n^2,T(1)=2递归
如何在不使用主定理的情况下确定T(n)=5T(n/2)+n^2,T(1)=2的渐近上界 下面是我的步骤,但我不知道如何处理最后的求和,因此无法找到这个递归函数的大O答案Algorithm 如何求解T(n)=5T(n/2)和#x2B;n^2,T(1)=2递归,algorithm,recursion,big-o,Algorithm,Recursion,Big O,如何在不使用主定理的情况下确定T(n)=5T(n/2)+n^2,T(1)=2的渐近上界 下面是我的步骤,但我不知道如何处理最后的求和,因此无法找到这个递归函数的大O答案 T(n) = 5T(n/2) + n^2 = 5^2 T(n/2^2) + 5(n/2)^2 + n^2 = 5^3 T(n/2^3) + 5^2(n/2^2)^2 + 5(n/2)^2 + n^2 = ... = 5^i T(n/2^i) + 5^i(n/2^i)^2 + ...+ 5^
T(n) = 5T(n/2) + n^2
= 5^2 T(n/2^2) + 5(n/2)^2 + n^2
= 5^3 T(n/2^3) + 5^2(n/2^2)^2 + 5(n/2)^2 + n^2
= ...
= 5^i T(n/2^i) + 5^i(n/2^i)^2 + ...+ 5^2(n/2^2)^2 + 5(n/2)^2 + n^2
= 5^i T(n/2^i) + n^2 Sum of k from 0 to i, (5/4)^k
如何处理求和?谢谢
如何处理求和
你在总结中描述的是一个例子。表格中的金额:
n
---
\ i
/ a
---
i=0
有一个已知的解决方案:
n
--- n+1
\ i a - 1
/ a = --------
--- a - 1
i=0
这是你的总数:
从0到i的k之和(5/4)^k
等于:
4 * ((5/4)^(i+1) - 1)
我们知道,
i
仅限于log2n,这应该足以解决该方程。谢谢,但我认为“a”应该在0和1之间才能使用该方程。但是,在这种情况下,“a”是5/4,我们不能用这个方程来求和。@JustABadProgrammer:不,这是一个条件,如果你想要无穷和,这是有意义的,因为如果a>=1,那么这个和只会变大,从而导致无穷大,但是如果你有一个“迭代器”的界,那么不管a,正如维基页面上所写的那样。您可以使用给定的a
(如5/4)和给定的n
(如3)对其进行测试。然后我们得到4*((5/4)^4)-1)=5.765625,实际上是1+5/4+25/16+125/64。