蓝桥备赛指南(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;
}
相关推荐
lilili也36 分钟前
visual studio add matlab
c语言·c++
Forever Nore41 分钟前
LeetCode 1 两数之和
算法·leetcode·职场和发展
To_OC1 小时前
LC 3 无重复字符的最长子串:从入门滑动窗口到优化写法,再也不怕面试官追问
javascript·算法·leetcode
(Charon)1 小时前
【C++】多线程死锁:产生原因、复现与解决方法
开发语言·c++·算法
lucas_AI2 小时前
ConfBench:大模型的「我很有把握」,到底能不能信?
人工智能·算法
oier_Asad.Chen2 小时前
【洛谷题解/AcWing题解/真题】洛谷P2330【SCOI2005】繁忙的都市(Kruskal算法的再探究))
c++·算法·贪心算法·图论·最小生成树·kruskal
我想走路带风4 小时前
各自缓冲及实现
c++
青 春 记 忆5 小时前
LeetCode 53. 最大子数组和|Python 解法详解
python·算法·leetcode
豆瓣鸡5 小时前
算法日记 - Day10
算法
戴西软件5 小时前
戴西CAxWorks.VPG车辆工程仿真软件技术解析(上)——安全仿真体系的自动化构建
运维·网络·数据库·人工智能·算法·安全·自动化