中国の剰余定理計算機:剰余体系をステップバイステップで解く
中国の剰余定理計算機は、連立合同式(x ≡ 2 (mod 3)やx ≡ 3 (mod 5)などの式)を個々の法数の積(または最小公倍数)を法とする単一の合同式に統合することで解きます。この方法は、中国の古い数学テキスト『孫子算経』に遡る約1,500年前の起源を持ち、今日ではRSA暗号化の最適化、暦の計算、誤り訂正符号に基づいており、離散数学と数論の講座の主流です。このガイドは、計算機が内部でどのように機能するか、システムに解があるかどうかを確認する方法、このメソッドが依存する逆元を見つける方法、互いに素な法数を持つ例と持たない例の2つの完全な計算例、および一般的な間違いと練習問題を紹介します。
目次
中国の剰余定理とは何か?
中国の剰余定理(CRT)は、連立合同式x ≡ a₁ (mod m₁)、x ≡ a₂ (mod m₂)、...、x ≡ aₙ (mod mₙ)があり、法数m₁、m₂、...、mₙが互いに素である(すべてのペアが1以外の共通因数を持たない)場合、xに対してM = m₁ × m₂ × ... × mₙを法とした解が正確に1つ存在することを述べています。この定理は、3世紀から5世紀の中国のテキスト『孫子算経』(孫の算術マニュアル)に最初に登場することからその名前が付けられ、そこで古典的なパズルが提示されます:3で割ると余り2になり、5で割ると余り3になり、7で割ると余り2になる数を見つけるというものです。このパズル(そしてそれを解くCRTメソッド)は教室の外で常に現れています:RSA暗号化はCRTを使用して、1つの巨大な法数の代わりにより小さい法数で計算することで復号化を高速化し、コンピュータサイエンティストは大きな数をより小さい剰余のタプルとして表現して高速演算を行い、暦システムは異なる長さのサイクル(曜日、月の日数、閏年サイクル)を調和させるために使用します。
中国の剰余定理:互いに素な法数m₁、...、mₙに対して、連立式x ≡ aᵢ (mod mᵢ)はM = m₁ × m₂ × ... × mₙを法とした解が正確に1つ存在します。
中国の剰余定理計算機はどのように機能するのか?
中国の剰余定理計算機は、特に法数が3つ以上ある場合に手動で追跡するのが退屈な4つのステージを自動化します。特に剰余逆元の計算が重要です。内部的には、各合同式をペア(aᵢ、mᵢ)として扱い、法数が一緒に使用可能であることを確認し、試行錯誤ではなく加重和を使用してユニークな解を構築します。これら4つのステージを理解することで、計算機の出力を検証するか、計算機が許可されていない試験で同じ問題を手作業で解くことができます。
1. ステップ1:法数を確認する
すべての法数のペアが互いに素であることを確認します(gcd = 1)。ペアが共通因数を持つ場合、計算機は標準の公式の代わりに次のセクションで説明されている互いに素性の確認に切り替えます。
2. ステップ2:統合法数Mを計算する
すべての法数を乗算します:M = m₁ × m₂ × ... × mₙ。これは最終的な統合答えの法数です。
3. ステップ3:各部分積とその逆元を見つける
各合同式iに対して、Mᵢ = M / mᵢ(mᵢ以外のすべての法数の積)を計算し、Mᵢをmᵢを法とした逆元を見つけます。これをyᵢと呼び、Mᵢ × yᵢ ≡ 1 (mod mᵢ)を満たします。
4. ステップ4:統合して縮小する
すべての合同式でaᵢ × Mᵢ × yᵢを合計し、その合計をMで縮小して、最小の非負解xを得ます。
すべての中国の剰余定理計算機の背後にある公式:x ≡ Σ (aᵢ × Mᵢ × yᵢ) mod M、ここでMᵢ = M/mᵢ、yᵢはMᵢのmᵢを法とした逆元です。
法数が互いに素かどうかをどのように確認するか?
中国の剰余定理の教科書的なバージョンは互いに素な法数を必要とします。しかし、実際のシステム(特にスケジューリングや暗号化の問題に現れるもの)は、因数を共有する法数を持つことがよくあります。一般化されたCRTバージョンは依然として適用されますが、システムが最初に互いに素性の確認に合格した場合のみです。合同式x ≡ aᵢ (mod mᵢ)とx ≡ aⱼ (mod mⱼ)のすべてのペアに対して、2つは重複部分で一致する必要があります。つまり、aᵢ ≡ aⱼ (mod gcd(mᵢ, mⱼ))です。たとえ1つのペアでこのチェックが失敗した場合でも、システムは完全に解がなく、どのような他の情報があっても間違った数を返す代わりに良い計算機がこれを報告します。
1. ステップ1:法数の各ペアに対してgcd(mᵢ、mⱼ)を計算する
2つの合同式のシステムでは、確認するペアは1つだけです。3つの合同式のシステムでは、3つすべてのペアを確認してください。
2. ステップ2:そのgcdを法として両方の剰余を縮小する
aᵢ mod gcd(mᵢ、mⱼ)とaⱼ mod gcd(mᵢ、mⱼ)を取ります。一致する場合、ペアは互いに素です。
3. ステップ3:互いに素でないシステムの例
x ≡ 1 (mod 4)とx ≡ 0 (mod 6)を取ります。gcd(4、6) = 2。縮小:1 mod 2 = 1、0 mod 2 = 0。1 ≠ 0なので、両方の合同式を満たす整数はなく、システムは解がなく、中国の剰余定理計算機はこれを明確にフラグします。
互いに素でない法数の互いに素性ルール:x ≡ aᵢ (mod mᵢ)とx ≡ aⱼ (mod mⱼ)の両方が真である場合のみ、aᵢ ≡ aⱼ (mod gcd(mᵢ、mⱼ))を満たす場合のみです。
剰余逆元とは何か、そしてどのようにして見つけるか?
法mを法とする数aの剰余逆元は、a × b ≡ 1 (mod m)を満たす別の数bです。これは通常の除算での1/aと同じ役割を果たしますが、固定された法数内の全数に限定されます。剰余逆元が存在するのは、gcd(a、m) = 1の場合のみです。これは、標準的な中国の剰余定理が互いに素な法数を必要とする理由です:すべてのMᵢがmᵢを法とした逆元を持つことを保証します。手作業で剰余逆元を見つける最も信頼できる方法は、拡張ユークリッド互除法です。これは通常のgcdアルゴリズムを前進させ、次に逆行して1をaとmの組み合わせとして表現します。
1. ステップ1:ユークリッド互除法を前進させる
4 mod 7の逆元を見つけます。繰り返し除算:7 = 1×4 + 3、次に4 = 1×3 + 1、次に3 = 3×1 + 0。剰余は3、次に1、次に0です。gcd(4、7) = 1であることが確認されるので、逆元が存在します。
2. ステップ2:逆行して1を分離する
2番目から最後の行から、1 = 4 − 1×3。最初の行から3 = 7 − 1×4を代入:1 = 4 − 1×(7 − 1×4) = 2×4 − 1×7。
3. ステップ3:逆元を読み取る
方程式1 = 2×4 − 1×7は2×4 ≡ 1 (mod 7)を意味するため、4 mod 7の逆元は2です。クイックチェック:4 × 2 = 8 = 7 + 1、これは確かに≡ 1 (mod 7)です。
小さい法数の場合、候補を直接テストする方が速いことがよくあります:aに1、2、3、...をmを法として乗算して、積が1になるまで繰り返します。より大きい法数では、拡張ユークリッド互除法が遥かに信頼できます。
演習例:互いに素な合同式を解く
これは古い孫子算経の問題です:x ≡ 2 (mod 3)、x ≡ 3 (mod 5)、x ≡ 2 (mod 7)を満たすxを見つけます。法数3、5、7は互いに素であるため、標準的なCRT公式が直接適用されます。
1. ステップ1:Mを計算する
M = 3 × 5 × 7 = 105。
2. ステップ2:各Mᵢとその逆元を計算する
M₁ = 105/3 = 35。35 mod 3 = 2、2 mod 3の逆元は2です(2×2 = 4 ≡ 1 mod 3)。 M₂ = 105/5 = 21。21 mod 5 = 1、1 mod 5の逆元は1です。 M₃ = 105/7 = 15。15 mod 7 = 1、1 mod 7の逆元は1です。
3. ステップ3:統合する
x ≡ (a₁×M₁×y₁) + (a₂×M₂×y₂) + (a₃×M₃×y₃) mod M = (2×35×2) + (3×21×1) + (2×15×1) mod 105 = 140 + 63 + 30 mod 105 = 233 mod 105 = 23。
4. ステップ4:検証する
23 ÷ 3 = 7 余り2 ✓。23 ÷ 5 = 4 余り3 ✓。23 ÷ 7 = 3 余り2 ✓。最小の非負解はx = 23で、他のすべての解は任意の整数kに対して23 + 105kです。
x ≡ 23 (mod 105)—中国の剰余定理計算機が即座に返す同じ答えで、1,000年以上前にこの数学分野を開いたのと同じパズルです。
演習例:互いに素でない法数を調和させる
次に、x ≡ 3 (mod 4)とx ≡ 1 (mod 6)を解きます。4と6は互いに素ではなく(2の因数を共有します)。互いに素な法数の例の標準公式は直接は適用されませんが、最初に互いに素性の確認に合格したシステムは、依然として法数の最小公倍数を法とした唯一の解を持つことができます。
1. ステップ1:互いに素性を確認する
gcd(4、6) = 2。両方の剰余を縮小:3 mod 2 = 1、1 mod 2 = 1。一致するため、システムは互いに素で、解が存在します。
2. ステップ2:統合法数を見つける
4 × 6 = 24の代わりに、最小公倍数を使用します:lcm(4、6) = 12。解は24ではなく12を法とした唯一の解になります。
3. ステップ3:代入して解く
最初の合同式から x = 4k + 3 と書き、2番目に代入:4k + 3 ≡ 1 (mod 6)、したがって4k ≡ −2 ≡ 4 (mod 6)。両辺と法数はgcd(4、6) = 2の因数を共有するため、全体の合同式を2で除:2k ≡ 2 (mod 3)。2 mod 3の逆元は2であるため、k ≡ 2×2 ≡ 1 (mod 3)。
4. ステップ4:xを再構成する
任意の整数jに対してk = 3j + 1なので、x = 4(3j + 1) + 3 = 12j + 7。最小の非負解はx = 7です。
5. ステップ5:検証する
7 mod 4 = 3 ✓。7 mod 6 = 1 ✓。したがってx ≡ 7 (mod 12)が正しく、法数が共通因数を共有する場合—互いに素でないCRTが機能する—合同式を共有因数で除く手順です。
法数が共通因数を共有する場合、互いに素な法数公式をそのまま使用することはできません。逆元を見つける前に結果の合同式をgcd(mᵢ、mⱼ)で除く必要があります。さもなければ逆元は存在しません。
最小の非負解を再構成する
互いに素性の確認に合格したすべての中国の剰余定理システムは、1つではなく無限に多くの整数解を持ちます。しかし、それらはすべてMを法としてお互いに合同です(または互いに素でない場合はlcm(m₁、...、mₙ)を法とした場合)。慣例として、計算機はその無限ファミリーの最小の非負代表である値x₀(0 ≤ x₀ < Mを満たす)を報告します。なぜなら、それは述べ、比較、検証するのが最も簡単な単一の正規答えだからです。他のすべての解はx₀にMの倍数を加算または減算したものです。
最小の非負解を再構成する
各ステップは以下の通りです:
1. 負の中間合計を縮小する
計算機メソッドのステップ4の加重和は、任意の剰余aᵢが負の場合、または剰余逆元が負の代表として計算された場合、負になる可能性があります。合計が、例えばS = −37でM = 45の場合、Mを繰り返し加算して結果が非負になるまで:−37 + 45 = 8、最小の非負解はx₀ = 8で、−37ではありません。
2. 完全な解集合
x₀を取得したら、完全な解集合はk = ...、−2、−1、0、1、2、...に対してx₀ + kMの形式のすべての整数です。上記のSunzi例では、それは23、128、233、...およびまた−82、−187などですが、特定の範囲が要求されない限り、報告するのは23です。
負の値または過度にサイズが大きい中間結果は間違っていません。Mの倍数を加算または減算して、値が[0、M)に入るまでにしてください。
中国の剰余定理の最も一般的な間違いは何か?
CRT問題のほとんどのエラーは、最終的な計算の欠陥ではなく、確認をスキップすることから発生します。これが、問題の最後ではなく最初で減速する価値がある理由です。
1. 互いに素でない法数に対して互いに素な公式を適用する
任意の2つの法数が因数を共有する場合、Mをそれらの積として計算し、標準的な方法で剰余逆元を探すと、サイレントに失敗するか、間違った答えを生成します。常にすべてのペアに対してgcd(mᵢ、mⱼ) = 1を最初にチェックしてください。
2. 剰余逆元と通常の逆数を混同する
4 mod 7の逆元は1/4ではなく2です—剰余逆元は拡張ユークリッド互除法(または小さい法数の試行乗算)で見つかる全数で、決してフラクションではありません。
3. 負の数をmを法として正しく縮小しない
−2 mod 6は4です。−2でも2でもありません—法数を加算し続けて、結果が範囲[0、m)内に入るまでにしてください。截断または絶対値を取る代わりに法数を加算することは、間違った答えの頻繁な原因です。
4. 互いに素でないシステムで共有因数で除くことを忘れる
法数が共通因数を共有する場合、4k ≡ 4 (mod 6)のような合同式は逆元を見つける前にgcd(4、6) = 2で除す必要があります。つまり2k ≡ 2 (mod 3)になります。gcd(4、6) ≠ 1なため、4にはmod 6の逆元が全くありません。
5. 最終合計をMで縮小するのを止めない
ステップ4からの加重合計(例えば、Sunzi問題では233)は最終答えではありません—最小の非負解に到達するにはMで縮小する必要があります(233 mod 105 = 23)。
あなたの答えが元の各合同式に戻して接続されていない場合、互いに素性の確認と剰余逆元を最初に再チェックしてください。そこで、ほぼすべてのCRT間違いが実際に発生します。
練習問題:中国の剰余定理計算機スキルをテストする
以下の3つのシステムに手作業で取り組み、互いに素性または互いに素性を最初にチェックしてから、以下の解と比較してください。2番目の問題は意図的に解不可能です—これを認識することは、解が存在する場合に数値答えを見つけることと同じくらい重要です。
1. 問題1(互いに素)
解く:x ≡ 1 (mod 3)、x ≡ 4 (mod 5)、x ≡ 6 (mod 7)。答え:M = 105。M₁ = 35で逆元2 mod 3;M₂ = 21で逆元1 mod 5;M₃ = 15で逆元1 mod 7。合計 = (1×35×2) + (4×21×1) + (6×15×1) = 70 + 84 + 90 = 244。244 mod 105 = 34。チェック:34 mod 3 = 1 ✓、34 mod 5 = 4 ✓、34 mod 7 = 6 ✓。解:x ≡ 34 (mod 105)。
2. 問題2(互いに素でない法数—解がない)
解く:x ≡ 2 (mod 8)、x ≡ 5 (mod 12)。gcd(8、12) = 4。縮小:2 mod 4 = 2、5 mod 4 = 1。2 ≠ 1なため、システムは互いに素でなく、解がありません—中国の剰余定理計算機は不正確な数ではなくこの結論を返すべきです。
3. 問題3(互いに素な互いに素でない法数)
解く:x ≡ 5 (mod 9)、x ≡ 2 (mod 6)。gcd(9、6) = 3。縮小:5 mod 3 = 2、2 mod 3 = 2—互いに素。lcm(9、6) = 18。x = 9k + 5と書き、代入:9k + 5 ≡ 2 (mod 6) → 9k ≡ −3 ≡ 3 (mod 6)。gcd(9、6) = 3で除:3k ≡ 1 (mod 2) → k ≡ 1 (mod 2)。したがってk = 2j + 1、x = 9(2j+1) + 5 = 18j + 14。チェック:14 mod 9 = 5 ✓、14 mod 6 = 2 ✓。解:x ≡ 14 (mod 18)。このような問題のすべての剰余逆元と縮小ステップを2回チェックしたい場合、Solvifyのステップバイステップ数学ソルバーはこのガイドと同じ方法で各ステージを説明します。
中国の剰余定理と真の流暢性を構築する最速の方法は、互いに素、互いに素でない—だが互いに素、および互いに素でないシステムの混合を解くことです。どのケースにいるかを認識することはスキルの半分です。
関連記事
関連する数学ソルバー
スマートスキャンソルバー
合同式または数論問題の写真を撮り、インスタントステップバイステップの中国の剰余定理ソリューションを取得します。
ステップバイステップソリューション
すべての剰余逆元、互いに素性チェック、縮小ステップを説明され、最終的な剰余だけではなく見てください。
AI数学家庭教師
剰余逆元、互いに素な法数、またはなぜシステムが解を持たないかについてのフォローアップ質問をして、あなたの正確な問題に合わせた答えを得てください。
