【模板】矩阵乘法

矩 阵 乘 法【基 础】

模 板 题 ->矩阵乘法

1.定义

设A为 \(n\times p\) 的矩阵 ,B为 \(p\times m\) 的矩阵 ,那么称 \(m\times n\)的矩阵C为矩阵A与B的乘积,记作 \(C=AB\) 。

1.a 表达方式

其中矩阵C中的第 \({i}\) 行第 \({j}\) 列元素可以表示为:\((AB)_{ij}=\sum_{k=1}^{p}a_{ik}b_{kj}=a_{i1}b_{1j}+a_{i2}b_{2j}+...+a_{ip}b_{pj}\)

1.b 表达实例

\begin{matrix} & A & * & B & = & C \\ &

\begin{bmatrix}0&1&2&3\\ 4&5&6&7\\ 8&9&10&11\\ 12&13&14&15\\\end{bmatrix} & * & \begin{bmatrix}0&1&2&3\\ 4&5&6&7\\ 8&9&10&11\\ 12&13&14&15\\\end{bmatrix} & = & \begin{bmatrix}56&62&68&74\\ 152&174&196&218\\ 248&286&324&362\\ 344&398&452&506\\\end{bmatrix} \\ \end{matrix}

2.基本性质 [恒成立]

\(1.乘法结合律: (AB)C=A(BC)\)

\(2.乘法左分配律: (A+B)C=AC+BC\)

\(3.乘法右分配律: C(A+B)=CA+CB\)

\(4.对数乘的结合性: k(AB)=(kA)B=A(kB)\)

\(5.转置: (AB)^{T} =B^{T}A^{T}\)

3.代码示例

#include

//#pragma GCC optimize(2)

using namespace std;

#define int long long

const int mod=1e9+7;

int A[505][505],B[505][505],C[505][505];

int n,m,p;

inline void Matrix(int A[][505],int B[][505])

{

for (int i = 1; i <=n; ++i)

{

for (int j = 1; j <=m; ++j)

{

C[i][j] = 0;

for (int k = 1; k <=p; ++k)

{

C[i][j] = (C[i][j]+(A[i][k]*B[k][j])%mod)%mod;

}

}

}

}

signed main()

{

cin>>n>>p>>m;

for(int i=1; i<=n; i++)

{

for(int j=1; j<=p; j++)

{

cin>>A[i][j];

A[i][j]=(A[i][j]+mod)%mod;

}

}

for(int i=1; i<=p; i++)

{

for(int j=1; j<=m; j++)

{

cin>>B[i][j];

B[i][j]=(B[i][j]+mod)%mod;

}

}

//

Matrix(A,B);

//

for(int i=1; i<=n; i++)

{

for(int j=1; j<=m; j++)

{

cout<

}

cout<

}

return 0;

}

Copyright © 2088 奥术风暴·魔幻网游活动秘典 All Rights Reserved.
友情链接