矩阵快速幂是ACM比赛中对于求递推式能用到的模板,能实现O(N^3*logM)的复杂度,其中 N是矩阵阶乘,M是要求的第几项。
对于矩阵快速幂,首先的得知道单位矩阵
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪11⋮110⋮0⋯⋯⋱⋯10⋮1⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪
明显,单位矩阵与任何矩阵相乘,都会得到那个矩阵,这个就是对矩阵快速幂的时候的基础矩阵。
然后,我们首先来看看斐波拉契数列
斐波拉契数列的递推式是Fn = Fn-1 + Fn-2
所以我们可以试着写出对应的矩阵算式有:
{
An+1An}={
1