矩阵乘法与其运用

矩阵乘法与其运用(logn递推)

规则:

1.当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。

(123456)(12)

如上图所示,A的行数等于B的列数

2.矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。

3.乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

A=[a1,1a1,2a1,3a2,1a2,2a2,3]

B=[b1,1b2,1b3,1]

C=AB=[a1,1b1,1+a1,2b2,1+a1,3b3,1a2,1b1,1+a2,2b2,1+a2,3b3,1]

有了矩阵我们可以干嘛呢?

不可以能出门买菜还要用矩阵吧

本人学识浅薄,目前只了解一些应用,浅谈一下

在O(logn)时间复杂度推递推式

我们以最简单的递推式斐波那契为例子

f[i]=f[i1]+f[i2]

如果扩展一下

{f[i]=f[i-1]+f[i-2]f[i-1]=f[i-1]+0*f[i-2]

为什么要这样扩展呢?

这样可以适配矩阵乘法

[f[i1]f[i2]][1110]=[1f[i1]+1f[i2]1f[i1]+0f[i2]]=[f[i]f[i1]]

这样就把递推变成矩阵乘法

为什么要这样变成矩阵呢,直接推不好吗,矩阵有什么好处呢?

我们可以很容易的发现之前是两个递推式中的数相加得到第3个

而矩阵中是递推矩阵中的一个乘上一个常量矩阵

在斐波那契中我们可以用下面的式子

[f[0]f[1]][1110]n

快速算出f[n]与f[n+1]

如何快速算常数矩阵

[1110]n

考虑快速幂O(logn)

完结撒花~~~~

posted @   He_Zi  阅读(95)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示