用一维数组计算4*3和3*4矩阵的乘积,用c++
1个回答
展开全部
#include <cstdio>
#include <cmath>
#define LL long long
using namespace std;
const LL mo=1e9+7;
LL qpow(LL bas,int powe){
LL ret=1;
for (;powe;bas*=bas,bas%=mo){
if (powe&1) ret*=bas,ret%=mo;
powe=powe>>1;
}
return(ret);
}
struct matrix{
LL a[601][601],tmp[601][601];
int n,m;
void cpy(matrix&b){
n=b.n;m=b.m;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
a[i][j]=b.a[i][j];
}
void mul(matrix &b){
for (int i=0;i<=n;i++)
for (int j=0;j<=b.m;j++)
tmp[i][j]=0;
for (int i=0;i<=n;i++)
for (int k=0;k<=m;k++)
if (a[i][k])
for (int j=0;j<=b.m;j++)
tmp[i][j]+=a[i][k]*b.a[k][j]%mo,tmp[i][j]%=mo;
for (int i=0;i<=n;i++)
for (int j=0;j<=b.m;j++)
a[i][j]=tmp[i][j];
m=b.m;
}
};
以上实现了内置乘法函数的矩阵结构体
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询