文章

166

粉丝

68

获赞

829

访问

51.6k

头像
距阵相乘 题解:数学推演
P1055
发布于2025年2月10日 14:00
阅读数 288

#include <bits/stdc++.h>
using namespace std;

int main() {
	std::vector<vector<int>> a(3,vector<int>(3)),b(3,vector<int>(3)),c(3,vector<int>(3));
	for(int i=0;i<3;i++){
	    for(int j=0;j<3;j++){
	        cin>>a[i][j];
	    }
	}
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cin>>b[i][j];
        }
    }
    
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            for(int k=0;k<3;k++){
                c[i][j]+=a[i][k]*b[k][j];
            }
        }
    }
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            cout<<c[i][j]<<' ';
        }cout<<endl;
    }
}

矩阵乘是每行乘每列每个元素,也就是要进行三重循环,我们取a的每一行,乘b的每一列,对于行列之中的数量是相等的,是a的列数,也是b的行数,这时候,我们我们按照横向的过程逐个生成c的每一个数值,就是先对a进行行的结构选择,然后对b进行列的选择,然后从左到右,从上到下取他们的行列中值,然后求和,加入c中,即得c的一个元素

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发