蓝桥备赛指南(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;
}
相关推荐
ajassi20004 分钟前
开源 C++ QT QML 开发(四)复杂控件--Listview
c++·qt·开源
Vect__12 分钟前
二叉树实战笔记:结构、遍历、接口与 OJ 实战
数据结构·c++·算法
青草地溪水旁16 分钟前
第六章:适配器模式 - 接口转换的艺术大师
c++·适配器模式
hahaha601620 分钟前
高层次综合基础-vivado hls第三章
算法·fpga开发
charlie1145141911 小时前
精读C++20设计模式——结构型设计模式:外观模式
c++·学习·设计模式·c++20·外观模式
奔跑吧邓邓子1 小时前
【C++实战(58)】解锁C++内存优化密码:从泄漏检测到完美修复
c++·实战·内存优化
liulilittle2 小时前
macOS 内核路由表操作:直接 API 编程指南
网络·c++·macos·策略模式·路由·route·通信
辞旧 lekkk2 小时前
【c++】初识STL和string类
开发语言·c++·学习·萌新
smallnetter2 小时前
华为OD机试C卷 - 分苹果 - 二进制 - (Java & C++ & JavaScript & Python)
算法·华为od
haoly19892 小时前
数据结构与算法篇--结构不变式--动态数组
数据结构·不变式