MCPで接続 →

計算を入力してください

公式

広告

結果

最小の非負の解
8
x (mod 15)
一意な解が存在します Yes (mod 15)
使用した合同式 2
一般解 x = 8 + 15k

中国剰余定理とは?

中国剰余定理(CRT:Chinese Remainder Theorem)は、整数論における古典的な定理です。\(x \equiv a_1 \pmod{m_1}\)、\(x \equiv a_2 \pmod{m_2}\)、… という連立合同式があり、それぞれの法(mod の数)が互いに素(共通の約数を持たない)であるとき、\(M = m_1 \cdot m_2 \cdot \ldots\) を法として、ただ一つの解 \(x\) が存在することを保証します。この計算機は、その中で最小の非負の解を求めます。

2つの周期的な合同条件を満たす1点を示す数直線
中国剰余定理は、すべての合同式を同時に満たす mod M の唯一の値を求めます。

この計算機の使い方

各余り \(a_i\) と、その法 \(m_i\) をペアで入力してください。2 元または 3 元の連立合同式に対応しており、2 つだけ解きたい場合は 3 つ目の法を空欄のままにします。本ツールはまず法どうしが互いに素かを確認したうえで、解 \(x\) と合成された法 \(M\) を返します。なお、\(x + Mk\)(\(k\) は任意の整数)の形で表されるすべての値も解になります。

計算式の解説

\(M = \prod m_i\) とします。各合同式について \(M_i = M / m_i\) を定義し、さらに \(y_i = M_i^{-1} \bmod m_i\)(拡張ユークリッドの互除法で求める法逆元)とします。解は重み付き和 $$x \equiv \sum_{i} a_i\,M_i\,y_i \pmod{M}$$ で与えられます。\(M_i\) は \(m_i\) 以外のすべての法で割り切れるため、各項は自分自身の合同式に対してだけ正しい余りを与えます。

CRTの公式を M、M_i、y_i の各要素に分解した図
各合同式が \(a_i M_i y_i\) の項を与え、それらを合計して mod M で簡約します。

計算例

\(x \equiv 2 \pmod{3}\) かつ \(x \equiv 1 \pmod{4}\) を解いてみましょう。ここで \(M = 3 \cdot 4 = 12\) です。\(M_1 = 4\) であり、\(4 \equiv 1 \pmod{3}\) なので \(y_1 = 1\)。\(M_2 = 3\) であり、\(3 \equiv 3 \pmod{4}\) なので \(y_2 = 3\)(\(3 \cdot 3 = 9 \equiv 1\) となるため)。よって $$x = 2 \cdot 4 \cdot 1 + 1 \cdot 3 \cdot 3 = 8 + 9 = 17 \equiv 5 \pmod{12}$$ 5 (mod 12)。検算:\(5 \bmod 3 = 2\) ✓、\(5 \bmod 4 = 1\) ✓。

よくある質問(FAQ)

なぜ法は互いに素でなければならないのですか? 2 つの法が共通の約数を持つ場合、連立合同式は解を持たないこともあれば、それらの最小公倍数を法として複数の解を持つこともあります。このとき標準的な CRT の公式は適用できません。

「最小の非負の解」とは何ですか? すべての解は \(M\) の倍数だけずれて存在します。この計算機は、その中で 0 から \(M-1\) の範囲にある解を表示します。

負の余りを入力できますか? はい。負の値は計算前に各 \(m_i\) を法として 0 から \(m_i-1\) の範囲に正規化されます。

最終更新: