什么是模逆元?
整数 a 关于模数 m 的模乘法逆元,是指满足 \((a \cdot x) \bmod m = 1\) 的整数 x。它相当于模运算中的"除法"运算,在数论、RSA 加密体制以及众多编码理论算法中都扮演着核心角色。本计算器利用扩展欧几里得算法来求出 x。
如何使用本计算器
输入数字 a 和模数 m(要求 m ≥ 2)。工具会返回位于 0 ≤ x < m 区间内的最小非负逆元 x,确认逆元是否存在,并显示 gcd(a, m) 的值。若 gcd(a, m) ≠ 1,则逆元不存在,结果显示为"None"(无)。
公式详解
只有当 \(\gcd(a, m) = 1\) 时逆元才存在,也就是 a 与 m 互质。扩展欧几里得算法会找出满足 \(a \cdot x + m \cdot y = \gcd(a, m)\) 的整数 x 和 y。当最大公约数为 1 时,将 x 对 m 取模即可得到逆元。 $$\text{a} \cdot x \equiv 1 \pmod{\text{m}} \quad\Longrightarrow\quad x = \text{a}^{-1} \bmod \text{m}$$ 如果结果为负数,则加上 m 将其归一化为正值。
实例演算
求 3 关于模 11 的逆元。我们需要找出满足 \(3x \equiv 1 \pmod{11}\) 的 x。逐一试算可知, $$3 \times 4 = 12 = 11 + 1$$ 因此 \(12 \bmod 11 = 1\)。所以 x = 4。扩展欧几里得算法得出的结果完全相同,且 \(\gcd(3, 11) = 1\),证实了逆元确实存在。
常见问题
什么情况下逆元不存在? 当 a 与 m 存在大于 1 的公因数时——例如 4 关于模 6(gcd = 2)就没有逆元。
m 必须是质数吗? 不必。m 可以是任意 ≥ 2 的整数,关键只在于 a 与 m 是否互质。
答案的取值范围是多少? 逆元以最小非负余数的形式给出,取值介于 0 到 m − 1 之间。