中国剰余定理計算機
法がどの二つも互いに素である三つの連立合同式を解きます。
連立合同式を解く
各正の法に対応する整数の余りを入力してください。
中国剰余定理計算機について
中国剰余定理は CRT とも呼ばれ、複数の剰余条件を一つの解にまとめます。例えば x ≡ 2 modulo 3 は、x を 3 で割ると余りが 2 になることを意味します。この計算機は三つの合同式を受け取り、すべてを同時に満たす最小の非負整数を求めます。
古典的な定理は、どの二つの法も互いに素、つまり各組の最大公約数が一である場合に適用できます。この条件では、法の積を法として解がちょうど一つ存在します。法が 3、5、7 の場合、その積は 105 です。最小の解が 23 なら、23、128、233、さらに 105 を加減して得られるすべての整数が同じ連立合同式を満たします。
構成的なアルゴリズムでは、まずすべての法を掛けて M を求めます。各式について M をその法で割り、部分積を作ります。法はどの二つも互いに素なので、この部分積は除いた法に関する乗法逆元を持ちます。各余り、部分積、逆元を掛けると、一つの合同式を満たし、ほかの法では零になる項ができます。それらを足し合わせて M で剰余を取ると答えが得られます。
CRT は教科書の数論以外にも広く応用されます。大きな整数の効率的な演算、暗号実装、符号理論、暦の周期、交代勤務の予定、数式処理、剰余からの値の復元などに使われます。難しい計算を複数の法における小さな独立した計算に分け、後で結合できる場合に特に有効です。
整数の余りと、一より大きい法を入力してください。余りは負の数でも法より大きくても構いません。剰余演算で自動的に正規化されます。この版では標準的な定理に合わせ、一意な剰余類を保証するため、法がどの二つも互いに素であることを必須としています。互いに素でない法でも解ける場合はありますが、追加の整合性確認が必要なため対象外です。得られた解を各法で割り、余りを調べて必ず確認してください。
中国剰余定理の計算例
各行では三つの合同式を一つの剰余類にまとめています。
| 合同式 | 解 | 解説 |
|---|---|---|
| 2 mod 3; 3 mod 5; 2 mod 7 | 23 mod 105 | 二十三を割ると、指定された三つの余りが得られます。 |
| 1 mod 4; 2 mod 5; 3 mod 7 | 17 mod 140 | どの二つも互いに素な法の積は 140 です。 |
| 0 mod 2; 1 mod 3; 4 mod 5 | 4 mod 30 | 四がすべてを同時に満たす最小の非負整数解です。 |
合同式の解き方
- 最初の合同式の整数の余りと法を入力します。
- 二つ目と三つ目の余りと法を入力します。
- どの二つの法も最大公約数が一であることを確認します。
- 「合同式を解く」を選び、一意な剰余類を求めます。
- 答えを入力した各法で割った余りで確認します。
中国剰余定理のよくある質問
どの二つも互いに素とはどういう意味ですか?
異なる法をどの二つ選んでも最大公約数が一であることです。法そのものが素数である必要はありません。
なぜ解は無限にあるのですか?
定理は、すべての法の積を法とする一つの剰余類を特定します。その積の整数倍を加えても、すべての余りが保たれます。
余りは法より大きくてもよいですか?
はい。同値な標準の余りに直されます。例えば法が五なら、余り八は余り三と同値です。
負の余りも使えますか?
はい。負の余りも有効な剰余類を表し、正規化できます。表示される答えは最小の非負代表元です。
法が互いに素でない場合はどうなりますか?
共通部分のある合同条件が整合するときに限り、解が存在し得ます。この計算機はどの二つも互いに素な古典的定理に従うため、そのような系は対象外と表示します。
CRT の解を確認するにはどうすればよいですか?
表示された解を各法で割って余りを調べてください。それぞれの余りが、対応する入力をその法で正規化した値と一致すれば確認できます。