中国剩余定理(CRT)计算器 — 求解一次同余方程组
使用中国剩余定理求解形如 x ≡ a₁ (mod n₁)、x ≡ a₂ (mod n₂)… 的同余方程组。自动验证各模数是否两两互素,并给出最小非负整数解与通解。
计算示例:《孙子算经》中的「物不知数」问题
这是中国剩余定理起源之一的经典问题,出自约公元3至5世纪的算术著作《孙子算经》。「今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?」的答案是:以105为模,余数为23。
| 条件1 | x ≡ 2 (mod 3) |
|---|---|
| 条件2 | x ≡ 3 (mod 5) |
| 条件3 | x ≡ 2 (mod 7) |
| 解 | x ≡ 23 (mod 105) |
使用提示
- 如果模数(nᵢ)之间不是两两互素,将会报错。例如 mod 4 与 mod 6 的最大公约数为2,本计算器无法求解(这需要用到广义中国剩余定理)。
- 即使余数 aᵢ 大于等于模数 nᵢ 或为负数也没关系,程序内部会自动将其归约到 mod nᵢ 后再计算。
- 最多可以添加5个同余式(最少需要2个)。这类计算也可用于「猜测士兵人数」等需要同时满足多个周期条件的经典谜题。
- 结果中的通解以 x ≡ 解 (mod N) 的形式给出:在解上加上 N 的任意整数倍,仍然满足所有原始条件。
常见问题
它被广泛应用于密码学(利用CRT-RSA加速RSA解密)、计算机的纠错编码、历法计算,以及使该定理得名的中国古代数谜题等领域。总的来说,它可以帮助你找到同时满足多个周期性条件的数值。
本工具会显示错误提示并不进行计算。当模数存在公因数时(例如 mod 4 与 mod 6),有时仍然存在解,但求解需要用到另一种算法——广义中国剩余定理。本工具仅支持模数互素的经典版本。
可以添加2到5个同余式。理论上只要模数两两互素,无论多少个同余式都可以求解,但这个范围已经覆盖了绝大多数实际使用场景。
这不会被当作错误处理——程序会在内部自动将其归约为 a mod n 后再求解。例如输入 x ≡ 8 (mod 3),会被当作 x ≡ 2 (mod 3) 处理。
闲话 ― 从三世纪的算术典籍到RSA加密的提速
中国剩余定理的思想最早可追溯至《孙子算经》——一部约成书于公元3至5世纪的中国算术典籍——中著名的「物不知数」问题:「三三数之剩二,五五数之剩三,七七数之剩二」。这个古老的谜题已经体现出与现代中国剩余定理本质相同的思路:由若干个除法余数反推出原始的未知数。
中国剩余定理在现代最实用的应用之一,是加速RSA加密算法的解密过程。RSA解密需要对一个大数取幂后再对合数 n = p × q(p、q 均为大素数)取模。相比直接对 n 取模,利用中国剩余定理分别对 p 和 q 独立计算再合并结果,理论上可将解密速度提升至接近4倍——这项技术被称为「CRT-RSA」,已被许多密码学库采用。
本工具支持的是要求所有模数两两互素的「经典」中国剩余定理。当模数存在公因数时(例如 mod 4 与 mod 6),有时仍然存在解,但判定与计算需要用到更为复杂的广义中国剩余定理算法,这超出了本工具的范围。