模逆元计算器

使用扩展欧几里得算法求模乘法逆元,并验证同余关系。

计算模逆元
输入一个整数和一个大于一的模数。

关于模乘法逆元

整数 a 在模 m 下的乘法逆元是一个整数 x,使 a 与 x 的乘积除以 m 后余数为 1。用同余语言表示,即 a 乘 x 与 1 模 m 同余。本计算器通过扩展欧几里得算法求出最小非负逆元,并显示乘法验证。模数必须是大于一的整数。 当且仅当 a 与 m 互质,即最大公约数为 1 时,逆元才存在。如果它们有更大的公因数,那么涉及 a 的任何乘积在模 m 下仍可被该因数整除,不可能得到余数 1。例如,6 在模 15 下没有逆元,因为它们的最大公约数为 3。相比之下,3 在模 11 下的逆元是 4,因为 3 乘 4 等于 12,除以 11 后余数为 1。 扩展欧几里得算法不仅计算最大公约数,还能求出系数 x 和 y,使 ax 加 my 等于最大公约数。当该公约数为 1 时,将 x 对 m 取模即可得到模逆元。如果 x 为负数,加上足够多个 m,就能将其调整到零至 m 减一的标准范围,同时不改变其同余类。 模逆元在模运算中取代除法。不能直接对剩余类使用普通除法,因为不同整数可以代表同一个余数。在模 m 下除以 a,意味着乘以 a 的逆元,前提是该逆元存在。这种方法是解线性同余方程、化简模分式、应用中国剩余定理及推导许多数论算法的核心。 密码学广泛使用模逆元。RSA 密钥生成会对与欧拉函数相关的数值求指数的逆元;椭圆曲线计算在有限域上求点运算公式时也会用到逆元。编码理论、校验和、伪随机数生成器和计算机代数同样依赖高效的逆元计算。实际密码学实现使用精心设计的大整数及恒定时间算法,而非浏览器的普通数值运算,但底层数论原理相同。 逆元是在模 m 的意义下唯一,而不是作为普通整数唯一。如果 4 是 3 在模 11 下的逆元,那么 15、负 7,以及任何与 4 相差 11 的整数倍的数,都表示同一个逆元剩余类。计算器报告 4,因为最小非负代表元最便于比较和复用。 验证结果时,将原整数乘以显示的逆元,再除以模数,检查余数是否为 1。负数输入也适用同样规则,因为余数总能规范到标准范围。若工具提示逆元不存在,可另行计算最大公约数;任何大于 1 的结果都说明存在障碍。

模逆元示例

每个成功示例中的整数与模数都互质,因此存在逆元。

整数与模数逆元验证
3,模 1143 乘 4 对 11 取模,余数为 1。
5,模 1255 乘 5 对 12 取模,余数为 1。
17,模 433817 乘 38 对 43 取模,余数为 1。
10,模 171210 乘 12 对 17 取模,余数为 1。

如何求模 m 下的逆元

  1. 输入需要求模逆元的整数。
  2. 输入大于一的整数模数。
  3. 点击“求模逆元”,运行扩展欧几里得算法。
  4. 通过显示的乘法同余关系确认结果。

模逆元计算器常见问题

什么时候存在模逆元?

当且仅当整数与模数的最大公约数为 1 时,逆元存在。这样的两个数称为互质。

零有模逆元吗?

没有,零乘任何整数仍与零同余。模数大于一时,不可能得到余数 1。

为什么结果非负?

每个逆元都有无穷多个等价整数代表,它们之间相差模数的整数倍。为保持一致,计算器显示最小非负代表元。

扩展欧几里得算法如何求逆元?

它将最大公约数表示为输入整数与模数的整数线性组合。当公约数为 1 时,输入整数的系数经模规范化后就是逆元。

如何验证模逆元?

将整数乘以候选逆元,再除以模数。只有余数等于 1,逆元才有效。