蓝桥备赛指南(8):矩阵基础

矩阵的乘法

矩阵的乘法是《线性代数》中的基础内容。

乘法规则:(行数和列数)只有当相乘的两个矩阵的左矩阵的列数等于右矩阵的行数时,才能相乘。(详细详看《线性代数》)

矩阵的乘法的规则用一句话来描述就是第一个矩阵A的第i行和第二个矩阵B的第j列的各m个元素对应相乘再相加就得到新矩阵Cij的值。

如图:

代码实现:

cpp 复制代码
//代码实现
//n行k列
for (int i = 1; i <= n; ++i) {
	for (int j = 1; j <= k; ++j) {
		//再次枚举n行j列的所有元素
		for (int t = 1; t <= m)//A的这一行和B的这一列有m个元素
		{
			c[i][j] += a[i][t] * b[t][j];
		}
	}
}

整除

在计算机中,整数之间的除法往往时整除且向下取整的。

如果要计算x/y向上取整,需要(x+y-1)/y或者(x-1)/y+1。

同余

同余时数论中非常重要的概念,意思时两个或多个数字x,对于一个模数M的余数是相等的,或者说在模M的意义下它们是相等的。

GCD(最大公约数)

GCD是最大公约数,LCM是最小公倍数,大多数情况下,我们更关注GCD。

C++函数调用:_gcd(a,b)和_lcm(a,b);

辗转相除法求GCD

代码:

cpp 复制代码
int gcd(int a, int b) {
	return b == 0 ? a : gcd(b, a % b); 
}

LCM求解方法

代码:

cpp 复制代码
int lcm(int a, int b) {
	return a / gcd(a, b) * b;
}
相关推荐
码爸8 小时前
线性回归算法
算法·机器学习·线性回归
Coder-magician9 小时前
《代码随想录》刷题打卡day51:图论-part09(dijistra堆优化,Bellman_ford算法)
算法·图论
Nil2089 小时前
leetcode 763划分字母区间
算法·leetcode·职场和发展
不会就选b9 小时前
算法日常・每日刷题--<动态规划>20
算法·leetcode·动态规划
别动我齐刘海9 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
程序员老陆9 小时前
C++ std::promise深度解析
c++·程序设计
青少儿编程课堂10 小时前
迪杰斯特拉(Dijkstra)算法:单源最短路与赛场路线规划
c++·python·算法·bfs·信息学竞赛
不会就选b10 小时前
算法日常・每日刷题--<动态规划>19
算法·leetcode·职场和发展
沫璃染墨12 小时前
《Qt从零入门系列(十三):QSS样式表详解——从选择器与层叠规则到控件美化实战》
开发语言·css·c++·qt·ui·qt6.3·qss