略谈矩阵乘法优化递推

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了略谈矩阵乘法优化递推相关的知识,希望对你有一定的参考价值。

1、矩阵基本概念:

矩阵大概就是二维数组存储的样子,然后每一个地方都有元素。

例如:

  技术分享

 

然后是矩阵的乘法:

  技术分享

矩阵的了解就到这里了

2、引入

 求斐波那契数列第n项,n<=10^9.

  1、通项公式:

    技术分享

    不足:

      要求n次方。

      虽说n次方可以log2出解,但是精度问题值得考量。

  2、矩阵快速幂:

    技术分享             技术分享

    先在考虑将A矩阵转化成B矩阵。

    发现有这样一个转移矩阵。

    技术分享

    使得

    技术分享

    所以我们可以用矩阵解决了。即:

    技术分享

      不过单纯这么用矩阵显然是远远不够的,因为一步一步是O(n)的,因此我们要用快速幂,如下伪代码:

1 Matrix A,C;//定义矩阵(Matrix 用结构体实现)
2 for(;n;n>>=1,C*=C)
3     if(n&1)
4         A*=C;
5 print(A);

//不要复制这一段,是伪代码!!!

3、转移矩阵的简单推导

 

4、例题(待添加)

 

以上是关于略谈矩阵乘法优化递推的主要内容,如果未能解决你的问题,请参考以下文章

利用Cayley-Hamilton theorem 优化矩阵线性递推

[题解][SHOI2013]超级跳马 动态规划/递推式/矩阵快速幂优化

特征多项式

蓝桥杯备赛--教你用矩阵优化递推

蓝桥杯备赛--教你用矩阵优化递推

bzoj4870: [Shoi2017]组合数问题(DP+矩阵乘法优化)