扩展欧几里得算法(Extended GCD / 模逆)

输入参数

示例:

计算结果

输入数字后点击"开始计算"

扩展欧几里得算法说明:

算法原理: 扩展欧几里得算法(Extended Euclidean Algorithm)不仅能计算两个整数 a 和 m 的最大公约数 gcd(a, m), 还能找到整数 x 和 y,使得 ax + my = gcd(a, m)。 这是贝祖等式(Bézout's identity)的一个应用。
算法步骤:
  1. 欧几里得算法:使用辗转相除法计算 gcd(a, m),记录每一步的商和余数
  2. 回代过程:从最后一步开始反向回代,逐步表示每个余数为 a 和 m 的线性组合
  3. 求解系数:最终得到系数 x 和 y,满足 ax + my = gcd(a, m)
模逆(Modular Inverse):
当 gcd(a, m) = 1 时(即 a 和 m 互质),存在 a 在模 m 下的乘法逆元,记作 a-1 mod m。 此时 x 即为模逆,满足 a × x ≡ 1 (mod m)。 如果 x 是负数,需要调整为正数:x' = x mod m。
应用场景:
  • 密码学:RSA 算法中计算私钥,需要求模逆
  • 数论问题:求解线性同余方程 ax ≡ b (mod m)
  • 组合数学:计算组合数的模运算(Lucas 定理等)
  • 竞赛编程:快速计算模逆,避免除法导致的精度问题
时间复杂度: O(log min(a, m)),与欧几里得算法相同

贝祖等式(Bézout's Identity):

对于任意整数 a 和 m,存在整数 x 和 y,使得 ax + my = gcd(a, m)。 这些系数 x 和 y 可以通过扩展欧几里得算法高效计算。