如何实现快速nxn整数矩阵求幂算法M ^ n
矩阵不是对角线的,也不是对称的
我已经实施了Squaring的algo Exponentiation,但我知道有更快的算法
我不想使用数值库。
特征向量/值答案可用于所有对称矩阵,但不适用于所有矩阵,我需要一个通用的算法。因此,我的问题需要其他答案,而不是您指出的上一个答案,并将我的问题标记为重复。
这是我的Squaring Expo代码,但我需要一个更快的算法: ww是矩阵的大小
void expo(int ww, ll n)
{
int i,j,k;
memset(ret,0,SZ);
for(i=0;i<ww;i++)ret[i][i]=1;
while(n){
if(n&1){
memset(tmp,0,SZ);
for(i=0;i<ww;i++)
for(j=0;j<ww;j++)
for(k=0;k<ww;k++)
tmp[i][j]+=ret[i][k]*mat[k][j];
memcpy(ret,tmp,SZ);
}
memset(tmp,0,SZ);
for(i=0;i<ww;i++)
for(j=0;j<ww;j++)
for(k=0;k<ww;k++)
tmp[i][j]+=mat[i][k]*mat[k][j];
memcpy(mat,tmp,SZ);
n>>=1;
}
}