隐隐约约记得打 ACM 时看过一篇关于介绍矩阵乘法应用的文章,还是在 @三江小渡的博客里面搜到的,今天中午吃饭的翻算法导论的时候看到一些跟矩阵乘法相关的算法,赶快又来翻了遍这篇博客:http://blog.pureisle.net/archives/900.html
矩阵乘法应用总结:http://blog.pureisle.net/archives/900.html
-
N维点坐标变换。例如,利用矩阵乘法我们可以模拟点的平移、翻转、缩放、旋转等操作。
-
矩阵快速幂。
A^N
求解,将幂数进行二进制分解加速运算。 -
矩阵幂和。
SUM(A, N) = A^1 + A^2 + ... + A^N
,递归求解。如果N % 2 == 0
则SUM(A, N) = SUM(A, N/2) * (E + A^(N/2))
;否则SUM(A, N) = A^N + SUM(A, N-1)
。 -
m个置换操作。矩阵乘法合并,矩阵快速幂加速计算。
-
常系数线性齐次递推方程的求解,一方面可以通过求解多项式方程的根求解通项公式,另一方面我们也可以通过构造系数矩阵利用矩阵快速幂求解。
- 二阶
Fibnacci
和N
阶递推方程
常系数线性齐次递推方程:https://www.zjyelizaveta.com/2017/07/02/常系数线性齐次递推关系学习笔记/
- 二阶
-
有向图
A --> B
恰好K
条边的路径数。A(i, j) = 1
表示(i,j)
之间存在有向边,C(i, j)
表示(i,j)
存在两条边的路径方案数,易知C(i,j) = SUM(A(i,k)*A(k,j)), 1 <= k <= N
,同理C*A
、(C*A)*A
,因此对于(i,j)
恰好为K
条边的路径数为A^K
。
另外,关于矩阵乘法在优化动态规划、图邻接矩阵、折半递归的应用,可以参考矩阵乘法在信息学中的应用这篇论文。强烈推荐阅读这篇文章。
TODO:
- 多米诺骨牌覆盖问题
- POJ 2778