我不是要求我的作业解决方案,我为这个等式做了一个解决方案,只是想知道它是否真的
T(n) = 2 * T(n-2) - 15
T(1) = T(2) = 40
SOLUTION
Level 1
T(n) = 2 ( T(n-4) -15 ) -15
Level 2
= 2 ( 2 ( T(n-6) -15 ) -15 ) -15
Level 3
= 2 ( 2 ( 2 ( T(n-8) -15 ) -15 ) -15 ) -15
从这些替换中我得出结论
T(n) = 2^i [ T(n -2(i+1) ] - (2^(i+1) -1 ) * 15
所以我达成的解决方案是
T(n) = 25 * 2^[ (n-1)/2 ] -15
AND I USED T(1) = 40
但我正在阅读的书:“算法分析:主动学习方法”使用T(2)= 40并达到另一种解决方案
我的解决方案是否正确?
注意我在这里使用直接替换而不是像Master或替换方法那样的任何其他方法
由于
答案 0 :(得分:1)
首先,你的等级1错了,它应该是这样的:
等级1
T(n) = 2 * ( 2 * T(n-4) - 15 ) - 15
我会这样解决:
由于T(1)= T(2) - > T(3)= T(4) - > ... - > T(2k + 1)= T(2k + 2),其中k是正整数
T(3)= 2 * T(1) - 15
T(4)= 2 * T(2) - 15 = 2 * T(1)-1 * 15
T(5)= 2 * T(3) - 15 = 4 * T(1)-3 * 15
T(6)= 2 * T(4)-15 = 4 * T(1)-3 * 15
T(7)= 2 * T(5) - 15 = 8 * T(1) - 7 * 15
T(8)= 2 * T(6)-15 = 8 * T(1)-7 * 15
...
- > T(2k + 1)=(2 ^ k * T(1)) - ((2 ^(k - 1) - 1)* 15)
- > T(2k + 2)= T(2k + 1)
这不是一个正式的证明。
答案 1 :(得分:0)
在推导公式时,一种好的检查方法是用已知的案例替换并检查它。
在这种情况下,替换为1将导致T(1) = 25*2^((1-1)/2) - 15 = 10
,但T(1)
应为40。
此外,在推导中,1级推导应为2( 2T(n-4) - 15) - 15
而不是2( T(n-4) - 15) - 15
。