求解下列递推关系式,给出确切解:

问题描述:

(1)T(n)=T(n-1)+n/2; T(1)=1

(2)T(n)=8T(n-1)-15T(n-2); T(1)=1,T(2)=4

这是数学问题吧?
(1)T(n)=T(n-1)+n/2 = T(n-2) + (n-1)/2 + n/2 = ...... = T(n - (n-1)) + 2/2 + ... (n-1)/2 + n/2 = (n+2)(n-1)/4 +1;
( 2) T(n) - 3T(n-1) = 5(T(n-1) - 3T(n-2)) , 令S(n)= T(n+1) - 3T(n) ,n>=1;
有S(n) = 5S(n-1),S(1) = 4-3*1=1;
∴ S(n) = 5^(n-1);
∴T(n+1) - 3T(n) = 5^(n-1);即T(n+1) = 3T(n) + 5^(n-1) = 3(3T(n-1) + 5^(n-2))+5^(n-1) =... = 3^n * T(1) + 5^n(1-(3/5)^n)/2
∴ T(n) = 3^(n-1) + 5^(n-1)/2 (1- (3/5)^(n-1)),n>= 1;

很简单,就是递归算法,比如第一题:
T(1) = 1
T(2) = 1 + 1 = 2
T(3) = 2 + 1.5 = 3.5
T(4) = 3.5 + 2 = 5.5
T(5) = 5.5 + 2.5 = 8
以此类推,继续算下去就行了。
你也可以写一个程序:
double foo(int n)
{
if (n == 1) return 1;
return foo(n - 1) + n / 2.0;
}
然后让计算机帮你算。

另一个类似,就直接给你程序,自己用计算机去算:
int foo(int n)
{
if (n == 1) return 1;
if (n == 2) return 4;
return 8 * foo(n - 1) - 15 * foo(n - 2);
}