用矩阵乘法优化的线性齐次递推公式求值

用矩阵乘法优化的线性齐次递推公式求值

对斐波那契数列,

(fn,fn1)(1110)=(fn+1,fn)

这样的话我们可以在常数时间内求出这个通项的下一项。而如果要求第n项,就相当于对这个矩阵进行幂运算。

有没有想到些什么?没错,见幂就开始快速幂。复杂度logn,比线性求不知道高到哪里去了。

那么能不能进一步推广?当然可以。

如果

f(n)=a1f(n1)+a2f(n2)+...+akf(nk)

那么显然,


(fn,fn1,...,fnk+1,fnk)a1a2...ak1ak10...0001...00...............00...0000...10=


(fn+1,fn,...,fnk+2,fnk+1)

点赞