【学习记录】矩阵乘法

这篇博客探讨了矩阵乘法的不同方法,包括基本的矩阵乘法、Strassen 矩阵乘法、循环矩阵乘法以及针对稀疏矩阵的乘法。通过实例解释了循环矩阵如何在特定概率问题中应用,例如牛牛的粉丝问题,该问题可以通过循环矩阵和马尔可夫链解决。此外,还介绍了在 F2 和 F3 字符集下的矩阵乘法优化技巧,利用 bitset 加速计算。最后,给出了参考资料以供深入学习。
摘要由CSDN通过智能技术生成

基本

一个 n × m n \times m n×m m × p m \times p m×p 的矩阵相乘的时间复杂度为 O ( n m p ) O(nmp) O(nmp),得到的结果为 n × p n\times p n×p 的矩阵。

由于矩阵乘法有结合律,因此对于一个 n n n 阶方阵 A A A,可以利用快速幂在 O ( n 3 log ⁡ k ) O(n^3 \log k) O(n3logk) 的时间内计算 A k A^k Ak

Strassen 矩阵乘法

应用了分治的想法,把原来的 n × n n \times n n×n n × n n \times n n×n 的矩阵相乘,优化成了 7 个 n 2 × n 2 \frac{n}{2} \times \frac{n}{2} 2n×2n 的矩阵相乘。

由 Master Theorem, T ( n ) = 7 T ( n 2 ) + O ( n ) T(n) = 7T\left( \frac{n}{2}\right) + O(n) T(n)=7T(2n)+O(n) 的解为 O ( n log ⁡ 2 7 ) O(n^{\log_2 7}) O(nlog27)

算法细节参见其他相关材料。

循环矩阵乘法

循环矩阵在计算一类和马尔可夫链有关的概率问题时会被用到。

n n n 阶循环矩阵是满足下面条件的 n n n 阶方阵:每一行都由上一行循环右移一位得到。如 3 3 3 阶循环矩阵:
[ a 1 a 2 a 3 a 3 a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值