「学习笔记」扩展欧几里得定理与线性同余方程
扩展欧几里得算法#
介绍#
扩展欧几里得算法,常用来求像 这样的不定方程的一组可行解
解法#
在此之前,我们可以确定 一定是 的倍数。
为什么?我们把原式分解一下
分解后,是
其中
所以, 一定是 的倍数
这道题转而可以转化成
其中
由欧几里得定理可以得知
所以 可以转化为
又因为
所以
又因为
所以
合并同类项得
又因为
所以
将 不断带入递归,直到有返回值后在进行计算
代码#
void exgcd(int a, int b, int &x, int &y) {
if (!b) {
x = 1;
y = 0;
}
else {
exgcd(b, a % b, y, x);
y -= (a / b) * x;
}
}
同余方程#
类似于 这样的方程就是同余方程。
我们可以将同余方程转化为不定方程 ,通过扩展欧几里得算法解得特解 。
则 我们可以得到通解
正确性?
你带入看看式子是否成立即可。
作者:yifan0305
出处:https://www.cnblogs.com/yifan0305/p/16684849.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
转载时还请标明出处哟!
朝气蓬勃 后生可畏
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】