最大公约数与最小公倍数

最大公约数与最小公倍数

一、定义

1. 最大公约数

a1,a2,a3,...,aka_1, a_2, a_3, ... , a_ka1,a2,a3,...,akkkk 个非 0 整数,如果 ∃d∈Z,d≠0\exist d \in Z, d \neq 0dZ,d=0 ,使得 d∣a1,d∣a2,d∣a3,...,d∣akd \mid a_1, d \mid a_2, d \mid a_3, ... , d \mid a_kda1,da2,da3,...,dak ,则称 ddda1,a2,a3,...,aka_1, a_2, a_3, ... , a_ka1,a2,a3,...,ak 的公约数;

公约数中最大的一个称为最大公约数,记为 gcd⁡(a1,a2,a3,...,ak)\gcd(a_1, a_2, a_3, ... , a_k)gcd(a1,a2,a3,...,ak) ,其永远存在,最少为 1 ;

gcd⁡=1\gcd = 1gcd=1 时,称这 nnn 个数是互质或互约的,公约数一定是最大公约数的约数;

2. 最小公倍数

a1,a2,a3,...,aka_1, a_2, a_3, ... , a_ka1,a2,a3,...,akkkk 个非 0 整数,如果 ∃d∈Z,d≠0\exist d \in Z, d \neq 0dZ,d=0 ,使得 a1∣d,a2∣d,a3∣d,...,ak∣da_1 \mid d, a_2 \mid d, a_3 \mid d, ... , a_k \mid da1d,a2d,a3d,...,akd ,则称 ddda1,a2,a3,...,aka_1, a_2, a_3, ... , a_ka1,a2,a3,...,ak 的公倍数;

公倍数中最下的一个称为最小公倍数,记为 lcm(a1,a2,a3,...,ak)lcm(a_1, a_2, a_3, ... , a_k)lcm(a1,a2,a3,...,ak) ,其永远存在;

公倍数一定是最小公倍数的倍数;

3. 定理

lcm(a,b)∗gcd⁡(a,b)=ablcm(a, b) * \gcd(a, b) = ablcm(a,b)gcd(a,b)=ab

证明如下,

a,ba, ba,b 质因数分解,设 a,ba, ba,b 质因数集合并集为 {P1,P2,...,Pn}\{P_1, P_2, ... , P_n\}{P1,P2,...,Pn}

则设 a=P1k1∗P2k2∗...∗Pnkn(0≤ki,ki∈Z),b=P1j1∗P2j2∗...∗Pnjn(0≤ji,ji∈Z)a = P_1^{k_1} * P_2^{k_2} * ... * P_n^{k_n} (0 \leq k_i, k_i \in Z), b = P_1^{j_1} * P_2^{j_2} * ... * P_n^{j_n} (0 \leq j_i, j_i \in Z)a=P1k1P2k2...Pnkn(0ki,kiZ),b=P1j1P2j2...Pnjn(0ji,jiZ)

∴gcd⁡(a,b)=P1min⁡(k1,j1)∗P2min⁡(k2,j2)∗P3min⁡(k3,j3)∗...∗Pnmin⁡(kn,jn)\therefore \gcd(a, b) = P_1^{\min(k_1, j_1)} * P_2^{\min(k_2, j_2)} * P_3^{\min(k_3, j_3)} * ... * P_n^{\min(k_n, j_n)}gcd(a,b)=P1min(k1,j1)P2min(k2,j2)P3min(k3,j3)...Pnmin(kn,jn)

lcm(a,b)=P1max⁡(k1,j1)∗P2max⁡(k2,j2)∗P3max⁡(k3,j3)∗...∗Pnmax⁡(kn,jn)\quad lcm(a, b) = P_1^{\max(k_1, j_1)} * P_2^{\max(k_2, j_2)} * P_3^{\max(k_3, j_3)} * ... * P_n^{\max(k_n, j_n)}lcm(a,b)=P1max(k1,j1)P2max(k2,j2)P3max(k3,j3)...Pnmax(kn,jn)

∵min⁡(ki,ji)+max⁡(ki,ji)=ki+ji\because \min(k_i, j_i) + \max(k_i, j_i) = k_i + j_imin(ki,ji)+max(ki,ji)=ki+ji

∴gcd⁡(a,b)∗lcm(a,b)=P1k1+j1∗...∗Pnkn+jn=a∗b\therefore \gcd(a, b) * lcm(a, b) = P_1^{k_1 + j_1} * ... * P_n^{k_n + j_n} = a * bgcd(a,b)lcm(a,b)=P1k1+j1...Pnkn+jn=ab

二、辗转相除法

1. 说明

辗转相除法用于求两个数的最大公约数,又称欧几里得算法,其原理是 gcd⁡(a,b)=gcd⁡(b,a  mod  b)\gcd(a, b) = \gcd(b, a \; mod \; b)gcd(a,b)=gcd(b,amodb)

2. 证明

gcd⁡(a,b)=p\gcd(a, b) = pgcd(a,b)=p ,则

a=kp,b=gp,(k,g)=1,k,g∈Za = kp, b = gp, (k, g) = 1, k, g \in Za=kp,b=gp,(k,g)=1,k,gZ

由模运算放缩性得,

a  mod  b=kp  mod  gp=p(k  mod  g)a \; mod \; b = kp \; mod \; gp = p(k \; mod \; g)amodb=kpmodgp=p(kmodg)

∴gcd⁡(b,a  mod  b)=gcd⁡(gp,(k  mod  g)∗p)\therefore \gcd(b, a \; mod \; b) = \gcd(gp, (k \; mod \; g) * p)gcd(b,amodb)=gcd(gp,(kmodg)p)

∵(k,g)=1\because (k, g) = 1(k,g)=1

∴gcd⁡(b,a  mod  b)=p\therefore \gcd(b, a \; mod \; b) = pgcd(b,amodb)=p

三、扩展欧几里得算法

1. 说明

已知整数 a,ba, ba,b 时,一定 ∃x,y∈Z\exist x, y \in Zx,yZ 使得 ax+by=gcd⁡(a,b)ax + by = \gcd(a, b)ax+by=gcd(a,b)

证明如下,

ax1+by1=gcd⁡(a,b),bx2+(a  mod  b)y2=gcd⁡(b,a  mod  b)ax_1 + by_1 = \gcd(a, b), bx_2 + (a \; mod \; b)y_2 = \gcd(b, a \; mod \; b)ax1+by1=gcd(a,b),bx2+(amodb)y2=gcd(b,amodb)

由欧几里得定理可得,gcd⁡(a,b)=gcd⁡(b,a  mod  b)\gcd(a, b) = \gcd(b, a \; mod \; b)gcd(a,b)=gcd(b,amodb)

∴ax1+by1=bx2+(a  mod  b)y2\therefore ax_1 + by_1 = bx_2 + (a \; mod \; b) y2ax1+by1=bx2+(amodb)y2

整理得 ax1+by1=ay2+b(x2−⌊ab⌋y2)ax_1 + by_1 = ay_2 + b(x_2 - \lfloor\frac{a}{b}\rfloor y_2)ax1+by1=ay2+b(x2bay2)

∴∃x1=y2,y1=x2−⌊ab⌋y2\therefore \exist x_1 = y_2, y_1 = x_2 - \lfloor\frac{a}{b}\rfloor y_2x1=y2,y1=x2bay2

x1,y1x_1, y_1x1,y1 这组解由 x2,y2x_2, y_2x2,y2 得来,

xn,ynx_n, y_nxn,yn 关于 gcd⁡(a,0)\gcd(a, 0)gcd(a,0) 时,有

axn+byn=gcd⁡(a,0)=aax_n + by_n = \gcd(a, 0) = aaxn+byn=gcd(a,0)=a

∴xn=1,yn=0\therefore x_n = 1, y_n = 0xn=1,yn=0

∴∃xn,yn\therefore \exist x_n, y_nxn,yn

∴∃x,y\therefore \exist x, yx,y

2. 代码

思路

则模拟每次证明的思路进行辗转相除后更新 x,yx, yx,y 即可;

代码
int ex_gcd(int a, int b, int &x, int &y) {
	int tot1, tot2;
	if (!b) {
		x = 1, y = 0;
		return a;
	}
	tot1 = ex_gcd(b, a % b, x, y);
	tot2 = x;
	x = y;
	y = tot2 - a / b * y;
	return tot1;
}

四、裴蜀定理

1. 定理

对于不定方程 ax+by=max + by = max+by=m ,其有解的充要条件为 gcd⁡(a,b)∣m\gcd(a, b) \mid mgcd(a,b)m

证明如下,

  1. 必要性,即 ax+by=max + by = max+by=m 有解,可得 gcd⁡(a,b)∣m\gcd(a, b) \mid mgcd(a,b)m

    ∵ax+by=m\because ax + by = max+by=m 有解

    ∴∃x,y∈Z\therefore \exist x, y \in Zx,yZ 使得 ax+by=max + by = max+by=m

    ∵gcd⁡∣a,gcd∣b\because \gcd \mid a, gcd \mid bgcda,gcdb

    ∴gcd(a,b)∣ax+by\therefore gcd(a, b) \mid ax + bygcd(a,b)ax+by

    ∴gcd(a,b)∣m\therefore gcd(a, b) \mid mgcd(a,b)m

  2. 充分性,即 gcd(a,b)∣mgcd(a, b) \mid mgcd(a,b)m ,可得 ax+by=max + by = max+by=m 有解;

    由扩展欧拉定理得, ax+by=gcd⁡(a,b)ax + by = \gcd(a, b)ax+by=gcd(a,b) 一定有解

    ∵gcd(a,b)∣m\because gcd(a, b) \mid mgcd(a,b)m

    ∴ax+by=m\therefore ax + by = max+by=m 有解

2. 引理1

a,b∈Z+a, b \in Z^+a,bZ+ ,且 (a,b)=1(a, b) = 1(a,b)=1 ,则 ∄k<b∈Z+\not\exist k < b \in Z^+k<bZ+ ,使得 b∣kab \mid kabka

使用反证法,证明如下,

∃0<k<b∈Z\exist 0 < k < b \in Z∃0<k<bZ ,使得 b∣kab \mid kabka ,则 kakaka 中一定包含 bbb 的所有质因子

∵(a,b)=1\because (a, b) = 1(a,b)=1

∴a\therefore aa 中不可能包含 bbb 的质因子

∴k\therefore kk 定为 bbb 的倍数

0<k<b0 < k < b0<k<b 矛盾,假设不成立;

3. 推论

a,b∈Z+a, b \in Z^+a,bZ+(a,b)=1(a, b) = 1(a,b)=1 ,则 0,a,2a,3a,...,(b−1)a0, a, 2a, 3a, ... , (b - 1)a0,a,2a,3a,...,(b1)a 分别 mod  bmod \; bmodb 的余数互不相等;

证明使用反证法,如下,

如果存在 ia,ja,(0<j<i<b)ia, ja, (0 < j < i < b)ia,ja,(0<j<i<b) ,使得它们分别 mod  bmod \; bmodb 的余数相等,则 (i−j)∗a  mod  b==0(i - j) * a \; mod \; b == 0(ij)amodb==00<i−j<b0 < i - j < b0<ij<b 与引理 1 矛盾,假设不成立;

4. 引理2

(a,b)=1(a, b) = 1(a,b)=1 ,则 ∃k∈Z\exist k \in ZkZ 使 k∗a  mod  b=1k * a \; mod \; b = 1kamodb=1

证明如下,

根据推论, 0,a,2a,3a,...,(b−1)a0, a, 2a, 3a, ... , (b - 1)a0,a,2a,3a,...,(b1)a 分别 mod  bmod \; bmodb 的余数互不相等,且有 bbb 个,在 [0,b−1][0, b - 1][0,b1] 之间

∴∃k∈Z\therefore \exist k \in ZkZ 使得 k∗a  mod  b=1k * a \; mod \; b = 1kamodb=1

五、费马小定理

如果 ppp 为质数,且 a  mod  p≠0a \; mod \; p \neq 0amodp=0 ,则 ap−1  mod  1a^{p - 1} \; mod \; 1ap1mod1

证明如下,

(a∗2a∗3a∗...∗(p−1)a)  mod  p=(ap−1∗(p−1)!)  mod  p(a * 2a * 3a * ... * (p - 1)a) \; mod \; p = (a^{p - 1} * (p - 1)!) \; mod \; p(a2a3a...(p1)a)modp=(ap1(p1)!)modp

∵p\because pp 为质数,且 aaa 不为 ppp 的倍数,根据裴蜀定理推论有,

a  mod  p,2a  mod  p,3a  mod  p,...,(p−1)a  mod  pa \; mod \; p, 2a \; mod \; p, 3a \; mod \; p, ... , (p - 1)a \; mod \; pamodp,2amodp,3amodp,...,(p1)amodp 互不相等,且在 [1,p−1][1, p - 1][1,p1] 之间

∴(a∗2a∗...∗(p−1)a)  mod  p\therefore (a * 2a * ... * (p - 1)a) \; mod \; p(a2a...(p1)a)modp

=a  mod  p∗2a  mod  p∗...∗(p−1)a  mod  p= a \; mod \; p * 2a \; mod \; p * ... * (p - 1)a \; mod \; p=amodp2amodp...(p1)amodp

=(p−1)!  mod  p= (p - 1)! \; mod \; p=(p1)!modp

∴ap−1∗(p−1)!  mod  p=(p−1)!  mod  p\therefore a^{p - 1} * (p - 1)! \; mod \; p = (p - 1)! \; mod \; pap1(p1)!modp=(p1)!modp

∵p\because pp 为质数

∴(p,(p−1)!)=1\therefore (p, (p - 1)!) = 1(p,(p1)!)=1

∴ap−1  mod  1\therefore a^{p - 1} \; mod \; 1ap1mod1

AI 代码审查Review工具 是一个旨在自动化代码审查流程的工具。它通过集成版本控制系统(如 GitHub GitLab)的 Webhook,利用大型语言模型(LLM)对代码变更进行分析,并将审查意见反馈到相应的 Pull Request 或 Merge Request 中。此外,它还支持将审查结果通知到企业微信等通讯工具。 一个基于 LLM 的自动化代码审查助手。通过 GitHub/GitLab Webhook 监听 PR/MR 变更,调用 AI 分析代码,并将审查意见自动评论到 PR/MR,同时支持多种通知渠道。 主要功能 多平台支持: 集成 GitHub GitLab Webhook,监听 Pull Request / Merge Request 事件。 智能审查模式: 详细审查 (/github_webhook, /gitlab_webhook): AI 对每个变更文件进行分析,旨在找出具体问题。审查意见会以结构化的形式(例如,定位到特定代码行、问题分类、严重程度、分析建议)逐条评论到 PR/MR。AI 模型会输出 JSON 格式的分析结果,系统再将其转换为多条独立的评论。 通用审查 (/github_webhook_general, /gitlab_webhook_general): AI 对每个变更文件进行整体性分析,并为每个文件生成一个 Markdown 格式的总结性评论。 自动化流程: 自动将 AI 审查意见(详细模式下为多条,通用模式下为每个文件一条)发布到 PR/MR。 在所有文件审查完毕后,自动在 PR/MR 中发布一条总结性评论。 即便 AI 未发现任何值得报告的问题,也会发布相应的友好提示总结评论。 异步处理审查任务,快速响应 Webhook。 通过 Redis 防止对同一 Commit 的重复审查。 灵活配置: 通过环境变量设置基
【直流微电网】径向直流微电网的状态空间建模线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模线性化方法,重点提出了一种基于耦合DC-DC变换器的状态空间平均模型的建模策略。该方法通过数学建模手段对直流微电网系统进行精确的状态空间描述,并对其进行线性化处理,以便于系统稳定性分析控制器设计。文中结合Matlab代码实现,展示了建模仿真过程,有助于研究人员理解复现相关技术,推动直流微电网系统的动态性能研究工程应用。; 适合人群:具备电力电子、电力系统或自动化等相关背景,熟悉Matlab/Simulink仿真工具,从事新能源、微电网或智能电网研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网的动态建模方法;②学习DC-DC变换器在耦合条件下的状态空间平均建模技巧;③实现系统的线性化分析并支持后续控制器设计(如电压稳定控制、功率分配等);④为科研论文撰写、项目仿真验证提供技术支持代码参考。; 阅读建议:建议读者结合Matlab代码逐步实践建模流程,重点关注状态变量选取、平均化处理线性化推导过程,同时可扩展应用于更复杂的直流微电网拓扑结构中,提升系统分析设计能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值