Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 计算:f(n)=f(n-1)和#x2B;f(n-2)和"x2B ;;f(n-3)和"x2B ;;n*n*(n+;1)_Algorithm_Recurrence - Fatal编程技术网

Algorithm 计算:f(n)=f(n-1)和#x2B;f(n-2)和"x2B ;;f(n-3)和"x2B ;;n*n*(n+;1)

Algorithm 计算:f(n)=f(n-1)和#x2B;f(n-2)和"x2B ;;f(n-3)和"x2B ;;n*n*(n+;1),algorithm,recurrence,Algorithm,Recurrence,对于递归关系: f(0) = p f(1) = q f(2) = r For n > 2, f(n) = a * f(n - 1) + b * f(n - 2) + c * f(n - 3) + n * n * (n + 1) 给定一些n,矩阵方程仍然可以建立,但是n的一些幂也需要在其中: |F(n-0)| | a, b, c, 1, 1, 0, 0 | |F(n-1)| |F(n-1)| | 1, 0, 0, 0, 0, 0, 0 | |F(n-2)| |F(n-2)|

对于递归关系:

f(0) = p
f(1) = q
f(2) = r
For n > 2,
f(n) = a * f(n - 1) + b * f(n - 2) + c * f(n - 3) + n * n * (n + 1)

给定一些n,矩阵方程仍然可以建立,但是
n
的一些幂也需要在其中:

|F(n-0)|   | a, b, c, 1, 1, 0, 0 |   |F(n-1)|
|F(n-1)|   | 1, 0, 0, 0, 0, 0, 0 |   |F(n-2)|
|F(n-2)|   | 0, 1, 0, 0, 0, 0, 0 |   |F(n-3)|
|(n+1)³| = | 0, 0, 0, 1, 3, 3, 1 | * | n³   |
|(n+1)²|   | 0, 0, 0, 0, 1, 2, 1 |   | n²   |
| n+1  |   | 0, 0, 0, 0, 0, 1, 1 |   | n    |
| 1    |   | 0, 0, 0, 0, 0, 0, 1 |   | 1    |
然后通过平方进行幂运算,最后将得到的矩阵乘以该向量:

[r, q, p, 27, 9, 3, 1].T

像往常一样,如果最终答案是以模
M
的形式请求的,那么这一切都可以通过模运算来完成,否则,对于1018附近的
n
来说,值可能太大了。

好主意!你的问题是什么?你面临的问题是什么?或者你的实际问题?可能重复的记忆时间仍然是线性时间,所以这还不够!非常感谢。你能告诉我你是如何解决这个问题的吗?我坚持了很长一段时间。@Tanmay我从斐波那契矩阵技巧中得到了这个公式,然后用额外的
F(n-3)
n的幂对它进行了一点修改