使用矩阵求幂的线性递归[关闭]

Posted

技术标签:

【中文标题】使用矩阵求幂的线性递归[关闭]【英文标题】:Linear Recurrence Using matrix exponentiation [closed] 【发布时间】:2015-04-19 06:06:04 【问题描述】:

矩阵求幂可用于求解线性递归。 我知道如何解决线性重复,例如:

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 IE。 涉及一个“n”项。

谁能给我提供任何链接或解释如何解决此类重复问题 或如何形成初始矩阵,其幂将用于解决递归。

【问题讨论】:

【参考方案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

【讨论】:

第三行是不是不对。据此计算n^2 = f(n-2) + (n-1)^2 + n-1。应该是| 0 0 1 2 2 |. 第一行也应该是 | 1 1 1 2 1 |.我说的对吗? 谢谢,我会改正的。 我主要把recurrence改成f(n) = f(n-1) + f(n-2) + (n-1)^2

以上是关于使用矩阵求幂的线性递归[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

二分求幂(快速求幂,二进制求幂)

矩阵快速求幂

矩阵快速求幂

矩阵如何求幂?

求幂的 SIMD 代码

深入剖析斐波拉契数列