您的位置首页百科知识

用C/C++如何实现矩阵的幂运算,求高手作答~

用C/C++如何实现矩阵的幂运算,求高手作答~

的有关信息介绍如下:

用C/C++如何实现矩阵的幂运算,求高手作答~

每次用中间变量存运算结果,然后再赋值回去,

求b[k][k]的T次方,过额运唱高res初始是单位矩阵,c回临抓用来存中间结果

while(T){//快速幂模板

if(T&1){//if(A&1)res*=A

for(i=360问答1;i<=k;i++)

for(j=1;j<=k;j++){

c[i][j]=0;

for(h=1;h<=k;h++)

if(res[i][h]&&b[h][j])

c买[i][j]+=res[i][h]*b[h][j];

}

for(i=1;i<=k;i++)

for(j=1;j<=k;j++)

res[i][j]=c[i][j]%10000;

}

for(i=1;i<=站历按春杨吸坏愿灯钢的k;i++)//A*A

for(j=1;j<=k;j++){

c[i][j]=0;

for(h=1;h<=k;h++)

if(b[i][h]&&b[h][j])

c还移交季向跟济阿[i][j]+=b[i][h]*b[h][j];

}

for(i=1;i<=k;i++)

for(j=1;j<=k;j++)

b[i][j]=c[i][j]%10000;

T=T>>1;

}