Recursive R(n)
if n==1 return 1;
else return R(n-1)+n*n*n
如何为此算法设置和解决此递归关系(n个多维数据集的总和)?
答案 0 :(得分:3)
表示S(n)
第一个n
多维数据集的总和S(n)
,n
必须是S(n) = an^4+bn³+cn²+dn.
中第四度的多项式,让
S(0)= 0
这是因为
1)S(n)-S(n-1)
,所以没有独立的术语,
2)当计算n³
时必须等于S(n)-S(n-1) = a(n^4-(n-1)^4)+b(n³-(n-1)³)+c(n²-(n-1)²)+d(n-(n-1)).
时,你会得到一个三次多项式,取消四次项:
a(4n³-6n²+4n-1)+b(3n²-3n+1)+c(2n-1)+d = n³.
开发和简化,
n³: 4a =1
n²: -6a+3b =0
n: 4a-3b+2c =0
1: -a +b -c+d=0
让我们确定系数:
a=1/4
b=1/2
c=1/4
d=0.
解决这个三角形系统很困难:
S(n) = (n^4+2n³+n²)/4 = n²(n+1)²/4.
最后
n³
使用Faulhaber formula可能更简单,或者只考虑一个总和就像一个整数,n^4/4
的总和约为{{1}}。
答案 1 :(得分:0)
首先,如果n == 1,你应该返回1.是的,这个递归函数计算1 + 2 ^ 3 + 3 ^ 3 + ... + n ^ 3。我们怎么知道?
好吧,举个例子,比如n = 5;
如果你把它们加起来=> R(5)返回5 ^ 3 + 4 ^ 3 + .. + 2 ^ 3 + 1。