数学--矩阵快速幂详解
生活随笔
收集整理的這篇文章主要介紹了
数学--矩阵快速幂详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引導:
我們之前都學快速冪:
矩陣也是可以相乘,方陣可以自乘,即乘冪運算。
作用:
將線性遞推,優化log2nlog_{2}nlog2?n
模板:
定義矩陣的階
const int len = 15;定義轉移矩陣
struct node {int mat[len][len]; } x, y;矩陣乘法
node mul(node x, node y) {node tmp;for (int i = 0; i < len; i++){for (int j = 0; j < len; j++){tmp.mat[i][j] = 0;for (int k = 0; k < len; k++){tmp.mat[i][j] += (x.mat[i][k] * y.mat[k][j]) % mod;}tmp.mat[i][j] = tmp.mat[i][j] % mod;}}return tmp; }矩陣快速冪
node matpow(node x,node y,int num){while(num){if(num&1){y=mul(y,x);}x=mul(x,x);num=num>>1;}return y; }算法的難點是怎樣寫出轉移矩陣:
一般的遞推式
關于其他矩陣構造:
總結
以上是生活随笔為你收集整理的数学--矩阵快速幂详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学--数论--HDU - 6395 L
- 下一篇: 数学--数论--HDU6919 Seni