使用方法
- 选择 运算:a mod n、逆元、幂,或中国剩余定理。
- 在需要的地方输入 数 a、指数 e 和 模 n;或在 同余式(每行一个) 中每行输入一个同余式。
- 阅读 结果。对于逆元,检查 框会说明逆元是否存在。
- 阅读 计算过程;表格显示欧几里得算法的各行或二进制位。
余数、逆元与幂
a 对模 n 的余数是满足0 ≤ r < n 且 a = q·n + r 的数 r,因此 a mod n 从不为负:−17 mod 5 为3,因为 −17 = (−4)·5 + 3。a 对模 n 的逆元是满足 a·x ≡ 1 (mod n) 的数 x,当且仅当 gcd(a, n) = 1时它存在,扩展欧几里得算法可以求出它。幂 a^e mod n 用反复平方法计算,e 的每个二进制位对应一次平方。
a mod n = a − n·⌊a ÷ n⌋
若 s·a + t·n = 1,则 a⁻¹ ≡ s (mod n)
- 许多计算器对 −17 mod 5 返回 −2,那是截断除法的余数,而不是剩余。剩余总是在0到 n − 1之间。
- 指数为负的幂使用 a 的逆元,因此只有当 gcd(a, n) = 1时才存在。
- 欧几里得表和二进制表列出了所有中间数,因此可以手工核对计算过程。
中国剩余定理与本计算器不涵盖的内容
中国剩余定理求一个数 x,使它除以方程组中每个 mᵢ 时的余数为 rᵢ。当各模两两互素时,对它们的乘积而言恰有一个解;否则,各余数必须在模的最大公约数意义下相互一致,方程组才有解。
- 超过64个二进制位的超大指数会被拒绝,以保持计算过程清晰可读。
- 使用 x 以外变量的同余式、多项式同余式以及模平方根不在本计算器的范围内。
- 本计算器只处理整数;小数会被拒绝。
示例:4¹³ mod 497,以及其他运算
指数13的二进制形式为1101。从1开始,每个二进制位上平方一次,遇到1时再乘以4,得到的结果依次为4、64、120,然后是445,因此4¹³ mod 497 = 445。计算器用同样的方法,并配有逐位的表格。
其他例子:−17 mod 5 = 3;4对模7的逆元为2,因为 4 × 2 = 8 ≡ 1;而 x ≡ 2 (mod 3)、x ≡ 3 (mod 5)、x ≡ 2 (mod 7) 的解为 x ≡ 23 (mod 105)。
| 问题 | 答案 |
|---|---|
| 4^13 mod 497 | 445 |
| −17 mod 5 | 3 |
| 4对模7的逆元 | 2 |
| x ≡ 2 (mod 3), 3 (mod 5), 2 (mod 7) | x ≡ 23 (mod 105) |
常见问题
为什么 −17 mod 5 等于3,而不是 −2?
剩余是从不为负的余数,满足0 ≤ r < n。因为 −17 = (−4) × 5 + 3,所以剩余为3。许多计算器显示 −2,那是截断除法的余数,而不是模剩余。
一个数在什么情况下对模 n 有逆元?
当该数与 n 的最大公约数为1时。例如4对模7有逆元2,但4对模6没有逆元,因为 gcd(4, 6) = 2。
幂运算为什么使用平方,而不是反复相乘?
在每个二进制位上平方并取余,可以使每个数保持较小。对于4¹³,最大的中间值为 484 × 4 = 1936,而一次长乘法会产生约8位数字的数。
如果同余式的模有公因数,会怎样?
方程组仍然可能有解。余数必须在两个模的最大公约数意义下一致:x ≡ 2 (mod 4) 与 x ≡ 8 (mod 6) 是一致的,解为 x ≡ 2 (mod 12)。
我输入的数字会被发送到服务器吗?
不会。计算完全在您的浏览器中完成,您输入的内容不会被保存,也不会发送给我们或任何其他服务器。
资料来源
- Wikipedia: Modular arithmetic(英文)
- Wikipedia: Modular exponentiation(英文)
- Wikipedia: Extended Euclidean algorithm(英文)
- Wikipedia: Chinese remainder theorem(英文)
数据和文字最近核对于2026年11月10日星期二。