使用矩阵求幂的线性递归

时间:2015-04-19 06:06:04

标签: c++ algorithm matrix

Matrix Exponentiation可用于解决线性递归问题。 我知道如何解决线性复发,如:

f(n) = f(n-k1) + f(n-k2) + ... + constant

但我无法找到有关如何解决像

这样的复发的任何信息

f(n) = f(n-k1) + f(n-k2) + ... + n^m

f(n) = f(n-k1) + f(n-k2) + ... + n*m

f(n) = f(n-k1) + f(n-k2) + ... + k^n 即 涉及' n'术语

任何人都可以向我提供任何链接或解释如何解决此类重复 或如何形成初始矩阵,其权力将用于解决复发。

1 个答案:

答案 0 :(得分:1)

这是一个例子。假设f(n) = f(n-1) + f(n-2) + (n-1)^2。我们还有n^2 = (n-1)^2 + 2(n-1) + 1n = (n-1) + 1,它们为代数项提供线性递归。以矩阵形式,

|1 1 1 0 0| |f(n-1) |   | f(n) |
|1 0 0 0 0| |f(n-2) |   |f(n-1)|
|0 0 1 2 1| |(n-1)^2| = | n^2  | 
|0 0 0 1 1| | n-1   |   |  n   |
|0 0 0 0 1| |  1    |   |  1   |

在左侧重复操作至n=2