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

矩阵的乘法

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

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

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

如图:

代码实现:

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;
}
相关推荐
FunnySaltyFish15 分钟前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
颜酱1 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
地平线开发者17 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮17 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者18 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考18 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx21 小时前
CART决策树基本原理
算法·机器学习
Wect1 天前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱1 天前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
肆忆_1 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++