中國剩餘定理(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),有時仍然存在解,但判定與計算需要用到更為複雜的廣義中國剩餘定理演算法,這超出了本工具的範圍。