【矩阵快速幂模板】
来源:互联网 发布:淘宝好看的小白鞋 编辑:程序博客网 时间:2024/06/18 05:21
原文来自:点击打开链接
下面是 m^n
// m^n % k
intquickpow(int m,int n,int k)
{
int b = 1;
while (n > 0)
{
if (n & 1)
b = (b*m)%k;
n = n >> 1 ;
m = (m*m)%k;
}
return b;
}
int
{
}
下面是矩阵快速幂:
//HOJ 3493
||快速幂(quickpow)模板
||P 为等比,I 为单位矩阵
||MAX 要初始化!!!!
||
#include
constint MAX = 3;
typedef struct{
int m[MAX][MAX];
} Matrix;
MatrixP = {5,-7,4,
1,0,0,
0,1,0,
};
MatrixI = {1,0,0,
0,1,0,
0,0,1,
};
Matrixmatrixmul(Matrix a,Matrix b) //矩阵乘法
{
int i,j,k;
Matrix c;
for (i = 0 ; i < MAX; i++)
for (j = 0; j < MAX;j++)
{
c.m[i][j] = 0;
for (k = 0; k < MAX; k++)
c.m[i][j] += (a.m[i][k] * b.m[k][j])�97;
||
||
||
||
#include
const
typedef
}
Matrix
Matrix
Matrix
{