当前位置: 首页 > news >正文

矩阵乘法计算

题目描述
计算两个矩阵的乘积,第一个是2 ∗ 3 2*32∗3,第二个是3 ∗ 2 3*23∗2。

输入格式
输入为两个矩阵,其中一个为2 ∗ 3 2*32∗3的矩阵,另一个为3 ∗ 2 3*23∗2的矩阵。

输出格式
输出一个2 ∗ 2 2*22∗2的矩阵(每一个数字后都跟一个空格)。

输入样例
1 2 3
3 4 5
6 7
8 9
10 11
输出样例
52 58
100 112

代码:

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <cstring>
#define MX 10005
using namespace std;
typedef vector<long long> vec;
typedef vector<vec> mat; 
int n;
//用二维vector表示矩阵
const int mod = 1e9+7;
//计算矩阵A*矩阵B
mat mul(mat& a,mat& b)
{
mat c(a.size(),vec(b[0].size()));//矩阵a的行数,矩阵b的列数 ,使用vec初始化
for(int i = 0;i < a.size();i++)
{
for(int k = 0;k < b.size();k++)
{
for(int j = 0;j < b[0].size();j++)
{
c[i][j] = (c[i][j] + a[i][k] * b[k][j]%mod)%mod;
}
}
}
return c;
}
int main() {
mat a(2,vec(3)),b(3,vec(2));
for(int i = 0;i < 2;i++)
{
for(int j = 0;j < 3;j++)
{
cin>>a[i][j];
}
}
for(int i = 0;i < 3;i++)
{
for(int j = 0;j < 2;j++)
{
cin>>b[i][j];
}
}
mat c(a.size(),vec(b[0].size()));
c = mul(a,b);
for(int i = 0;i < c.size();i++)
{
for(int j = 0;j < c[0].size();j++)
{
cout<<c[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

http://www.dtcms.com/a/299635.html

相关文章:

  • 安德鲁·卡帕西:深入探索像ChatGPT这样的大语言模型
  • 免费 PDF 转 Word 工具:无水印 / 支持批量转换,本地运行更安全【附工具下载】
  • Ubuntu系统 系统盘和数据盘扩容具体操作
  • 【第二章-数据的表示和运算】
  • vulhub Web Machine(N7)靶场攻略
  • 详解力扣高频SQL50题之1193. 每月交易 I【简单】
  • 数据恢复与备份
  • RS485转Profinet网关配置指南:高效启动JRT激光测距传感器测量模式
  • SpringMVC相关基础知识
  • HTML5 Canvas 绘制圆弧效果
  • Centos安装HAProxy搭建Mysql高可用集群负载均衡
  • 力扣112. 路径总和
  • 面试150 回文数
  • React状态管理——Dva
  • React入门指南——指北指南(第二节)
  • LeetCode——面试题 05.01 插入
  • Vue3组件通信方法清单
  • Linux——线程互斥
  • 云计算技术之docker build构建错误
  • Spring循环依赖以及三个级别缓存
  • Zama+OpenZeppelin:将机密智能合约带入 DeFi 和数字资产领域
  • ClickHouse高性能实时分析数据库-高性能的模式设计
  • JavaScript中.splice()的用法
  • Vue 插槽
  • 数据结构自学Day14 -- 利用归并排序思想实现“外排序”
  • 【MySQL 数据库】MySQL基本查询(第二节)
  • 达梦[-2894]:间隔表达式与分区列类型不匹配
  • 「iOS」————继承链与对象的结构
  • 全球节点的概念
  • 原理篇..