通过MCP连接 →

输入计算

数学公式

广告

结果

Modular inverse a-1 (mod m)
3
the integer x with a·x ≡ 1 (mod m)
gcd(a, m) 1
余数范围 0 ≤ x < m

什么是模乘法逆元计算器?

这个计算器用于求整数 a 关于模 m 的模乘法逆元,也就是在 \(0 \le x < m\) 范围内唯一满足 \(a \cdot x \equiv 1 \pmod{m}\) 的整数 x。它采用扩展欧几里得算法,同时还能算出 a 与 m 的最大公约数 \(\gcd(a, m)\)。这属于纯粹的数论运算,在世界各地的计算结果完全一致;它在密码学(如 RSA 密钥生成)、哈希算法以及求解一次同余方程中都有广泛应用。

如何使用

输入整数 a 和一个正的模数 m(建议取 \(m \ge 2\),这样才能得到有意义且唯一的逆元)。工具会先把 a 对 m 取模,再运行扩展欧几里得算法,最终给出逆元以及 \(\gcd(a, m)\)。如果 a 与 m 不互质(\(\gcd \ne 1\)),则逆元不存在,计算器会给出相应提示。

公式解析

当且仅当 \(\gcd(a, m) = 1\) 时,逆元才存在。扩展欧几里得算法会找到一对整数 s 和 t,使得 \(a \cdot s + m \cdot t = \gcd(a, m)\)。当 gcd 为 1 时,便有 \(a \cdot s \equiv 1 \pmod{m}\),因此逆元为

$$x = ((s \bmod m) + m) \bmod m$$

并将其化为最小的非负余数。

Advertisement
圆形模环,展示 a 乘 x 绕回并落在 1 上
逆元 x 是使 a*x 绕模一圈后等于 1 的值。

实例演示

设 \(a = 7\),\(m = 4\):由于 \(7 \equiv 3 \pmod{4}\),问题转化为求解 \(3x \equiv 1 \pmod{4}\)。对 \((7, 4)\) 运行扩展欧几里得算法,得到 \(\gcd = 1\) 及贝祖系数 \(s = -1\),于是

$$x = ((-1 \bmod 4) + 4) \bmod 4 = 3$$

验证:\(7 \cdot 3 = 21 = 5 \cdot 4 + 1 \equiv 1 \pmod{4}\)。所以答案为 3。

扩展欧几里得算法步骤图,带有除法和回代箭头
扩展欧几里得算法在一个过程中求出逆元和 gcd(a, m)。

常见问题

什么情况下逆元不存在?只有当 \(\gcd(a, m) > 1\) 时才不存在。例如 \(a = 6\),\(m = 9\),它们的 \(\gcd = 3\),因此不存在逆元。

a 可以是负数或大于 m 吗?可以。我们会先对 a 取模 m;由于 \(a \equiv a' \pmod{m}\),所以结果不会改变。

如果 m = 1 会怎样?任何整数对 1 取模都等于 0,因此逆元自然就是 0。

最后更新: