扩展欧几里得
概念讲解
什么是扩展欧几里得?
求解 的一组整数解 。
裴蜀定理
对于任意整数 a, b,存在整数 x, y 使得 。
实现
12345678910int extgcd(int a, int b, int& x, int& y) {
if (b == 0) {
x = 1;
y = 0;
return a;
}
int d = extgcd(b, a % b, y, x);
y -= a / b * x;
return d;
}应用
1. 求逆元
如果 ,则 ax + my = 1 的 x 就是 a 模 m 的逆元。
2. 解线性同余方程
3. 解二元一次不定方程
考点分析
初赛考查方式
- 程序阅读: 扩展欧几里得
- 编程题: 逆元求解
常见考点
- 扩展欧几里得原理
- 逆元求解
- 不定方程
例题精讲
例题 1:求逆元
题目: 求 3 模 11 的逆元。
解答:
3x + 11y = 1,解得 x = 4,所以逆元是 4。
验证:3 × 4 = 12 ≡ 1 (mod 11)
练习题
- 扩展欧几里得的原理是什么?
查看答案
扩展欧几里得的原理:
基于辗转相除法,在求 gcd 的同时,维护等式 的解。
递归过程:
- 当 时,
- 否则,递归求解
- 通过变换得到
- 逆元存在的条件是什么?
查看答案
逆元存在的条件:(a 和 m 互质)
如果 ,则 a 在模 m 意义下没有逆元。
- 如何解线性同余方程?
查看答案
解 :
- 用扩展欧几里得求 的解
- 如果 ,无解
- 否则,
易错点
⚠️ 注意:
- 逆元存在条件:gcd(a, m) = 1
- 解可能有多个,要取模
- 注意负数的处理
- 扩展欧几里得是数论基础