有人可以帮我解决这个问题。 T(1)= 5,T(n)= T(n-1)+ 2n 步骤说明会很好。
答案 0 :(得分:0)
要计算T的每个下一个值,您必须知道前一个。这就是“迭代”的含义。你必须经历一个循环,在你计算T(n)的每一步,从T(2),T(3),......等开始,直到你到达某个目标元素。变量T应该是一个数组。
答案 1 :(得分:0)
您可以通过简单的迭代(Java)来解决这个问题:
public static int T (int n) {
if(n <= 0) {
throw new IllegalArgumentException("n must be larger or equal to one.");
}
int result = 5;
for(int i = 2; i <= n; i++) {
result = result + 2*i;
}
return result;
}
程序的工作原理如下:首先我们执行边界检查:如果 n 小于或等于零,则结果是未定义的。接下来,我们将5
分配给result
。在我们输入for
循环之前,result
等于 T(n),接下来对于for
循环中的每次迭代,我们计算 T(i)基于 T(i-1)(在该时间点等于result
)。由于for
循环迭代到(并包括) n ,因此在迭代结束时result
等于 T(n)
根据迭代情况,我们可以简化此类using WolframAlpha:
因此,我们可以简化程序,使其在恒定时间内运行:
public static int T (int n) {
if(n <= 0) {
throw new IllegalArgumentException("n must be larger or equal to one.");
}
return n*n+n+3;
}