矩阵快速幂详解
矩阵快速幂详解
这篇博客会讲解:
什么是矩阵快速幂?有什么用?怎么实现的?
矩阵快速幂的原理是什么?如何快速构造矩阵?
注:矩阵快速幂不需要具体学习线性代数。这篇博客能保证没学过线性代数的人也能听懂
前置知识:矩阵及矩阵乘法
一个矩阵类似于一个二维数组,例如一个
其中
矩阵乘法就是将两个矩阵相乘。相乘的两个矩阵中,第一个矩阵的列数必须等于第二个矩阵的行数才能相乘。对于一个
矩阵乘法满足结合律但不满足结合律,读者自证不难。
1.矩阵快速幂的引入
矩阵快速幂是快速计算线性递推的方法。
递推不难理解。线性就是递推式里全是一次项,没有二及以上次项
举个例子:求第
当
这时就需要矩阵快速幂了
注意到斐波那契额数只和前两项有关系,那我们可以建立这样一个矩阵
若当前矩阵递推到了第
那每次转移就可以看成一个
设这个矩阵是
那么根据斐波那契额数列的前几项就可以列出几个方程,解方程,就可以得到这个矩阵:
也就是说,第
那么只需要算出:
就可以算出第
很明显
2.矩阵快速幂的原理及如何快速构造矩阵
很明显如果纯靠解方程求矩阵很慢,递推式稍微长点可能就得列一堆方程。赛场上又没时间,很可能没解完就交卷了。
那有没有快速构造矩阵的方法呢?
有
(在这里就不说推导过程了因为作者也是解了几个矩阵才发现的规律所以直接说结论)
如果递推式长成这样:
那么矩阵长成这样:
其中最左边那一列,除了最后一行,其他的都是零。
右上角那部分的对角线上都是
最下面那行就是按照我写的排列
做一次乘法,得到:
而矩阵
完
如有问题欢迎评论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】