算術と数論
合同式と合同算術(モジュラー演算)
固定した法(モジュラス)に達すると数が巡回する算術。
直観時計:巡回する数
時計の文字盤を見てほしい。12時の次は13時ではなく再び1時になる:時刻は12ステップごとに「巡回」する。今9時なら、8時間後は「17時」ではなく5時になる。なぜなら17と5を12で割った余りが同じだからだ。この日常的な巡回こそが合同式の考え方そのものである:2つの整数は、固定された数m(法と呼ぶ)の倍数だけ差があるとき「同じ」とみなされる。合同式を使えば、非常に大きな数をその余りに置き換えても正しく計算できる——これが時計、暦、チェックディジット、ハッシュテーブル、そして現代暗号を支える仕組みである。
法 m の時計上で、各剰余 x から axmodm へ弦を引く。m と a を変えて、写像が全剰余を置換する場合と部分群に潰れる場合を観察しよう。中高定義と基本的な性質
定義: 法mに関する合同
正の整数m(法)を固定する。2つの整数aとbが**法mに関して合同**であるとは、a≡b(modm)と書き、mがその差を割り切ること、すなわちm∣(a−b)を意味する。同値に、aとbをmで割った余りが等しいということである。固定したaに合同なすべての整数は剰余類[a]={…,a−m,a,a+m,a+2m,…}をなし、相異なる剰余類はちょうどm個あり、Z/mZと書く。
a≡b(modm)⟺m∣(a−b) ここでa,b,mは整数でm>0である。記号∣は「割り切る」と読み、(modm)は合同式に付随する法を表す。この定義だけで、合同が反射的・対称的・推移的である——すなわち同値関係である——ことがわかる。だからこそ「法mに関する剰余類」をそれ自体独立した対象として、集合Z/mZ={[0],[1],…,[m−1]}にまとめて語ることに意味がある。
Z/mZ={[0],[1],…,[m−1]} どの演算が合同を保つか?| 演算 | 規則 (もしa≡b, c≡d(modm)) | 数値例 (mod 12) |
|---|
| 加法 | a+c≡b+d(modm) | 9+8≡21≡9(mod12) |
| 減法 | a−c≡b−d(modm) | 2−5≡−3≡9(mod12) |
| 乗法 | ac≡bd(modm) | 5×5≡25≡1(mod12) |
| 除法 (cの約分) | gcd(c,m)=1のときのみ有効 | 4×2≡4×5(mod6)だが2≡5 |
大学定理
固定した法mに対して:(i) すべてのaについてa≡a(modm); (ii) a≡b(modm)⟹b≡a(modm); (iii) a≡b, b≡c(modm)⟹a≡c(modm); さらにa≡b(modm)かつc≡d(modm)ならばa+c≡b+d(modm)かつac≡bd(modm)。
なぜ正しいのか?
これにより合同式は算術として使えるようになる:巨大な元の数の代わりに余り同士を直接加減乗算しても、常に正しい余りが得られるということである——コンピュータが16桁のカード番号を検証したり、100桁の数を一度も保存せずに7100mod13を計算できたりする理由はここにある。
証明
反射性:a−a=0であり、任意のmに対してm∣0なので、a≡a(modm)。
対称性:a≡b(modm)ならば、ある整数kについてa−b=mkであり、よってb−a=m(−k)。−kも整数なのでm∣(b−a)、すなわちb≡a(modm)。
推移性:a≡b(modm)かつb≡c(modm)ならば、a−b=mk1、b−c=mk2と書ける。両式を足すとa−c=(a−b)+(b−c)=m(k1+k2)となり、m∣(a−c)、すなわちa≡c(modm)。
加法との両立性:a−b=mk1とc−d=mk2から両式を足すと(a+c)−(b+d)=m(k1+k2)となり、これはmの倍数なのでa+c≡b+d(modm)。
乗法との両立性:ac−bd=ac−bc+bc−bd=c(a−b)+b(c−d)=c⋅mk1+b⋅mk2=m(ck1+bk2)と書ける。これもmの倍数なのでac≡bd(modm)。(i)-(iii)により合同は同値関係となり、最後の2ステップはZ上のすべての環演算が剰余類Z/mZ上のwell-definedな演算へと降りることを示している。
もしgcd(c,m)=1ならば、ac≡bc(modm), gcd(c,m)=1⟹a≡b(modm)。同値に、cは法mに関する乗法逆元を持つ:cu≡1(modm)を満たす整数uが存在する。
なぜ正しいのか?
通常の「割り算」は実際には逆元による乗算であり、この定理はその逆元が法mに関していつ存在するかをまさに教えてくれる:cがmと共通の因数を持たないときちょうど存在する。この条件がなければ簡約は実際に失敗する(上の表の最終行を参照)。だからこそ、法mに関するべき乗についての後続のすべての結果——フェルマーの小定理、オイラーの定理、中国剰余定理——はこのただ一つの代数的事実の上に築かれている。
証明
gcd(c,m)=1より、ベズーの等式(ユークリッドの互除法の帰結)により∃u,v∈Z: cu+mv=1が保証される:cu+mv=1を満たす整数u,vが存在する。
ac≡bc(modm)の両辺にuを掛ける:acu≡bcu(modm)。ここでcu=1−mvを代入すると、左辺はa(1−mv)=a−amvとなり、amvはmの倍数なのでa(1−mv)≡a(modm);同様に右辺もb(1−mv)≡b(modm)。したがってa≡b(modm)となり、簡約法則が証明される。
さらに、a=1,b=0,c=cとする必要はない——直接、同じ代入によりcu=1−mv≡1(modm)なので、u自体がcの法mに関する乗法逆元である:これはまさに定理の主張が存在を述べている対象である。
仮定gcd(c,m)=1は本質的である:c=4, m=6とすると(gcd(4,6)=2=1)、4×2=8≡2(mod6)かつ4×5=20≡2(mod6)なので4×2≡4×5(mod6)だが、2≡5(mod6)である——互いに素という仮定を外すと簡約は実際に失敗する。
発展実世界での応用と具体例
合同算術は応用数学の中で最も目立たず、しかし遍在する道具の一つである。暦はそれを使って曜日を求める(mod 7);バーコードやISBNのシステムは1桁のチェックディジット(mod 11またはmod 10)で入力ミスを検出する;計算機科学のハッシュテーブルは余りを取ることでキーをバケットに写像する;そしてRSA型暗号(次の2つのトピックで詳しく扱う)はメッセージの暗号化と復号をすべて法での指数計算を通じて行う。以下の2つの具体例は、暦とチェックディジットの応用の背後にある日常的な推論を示す。
例: 曜日を求める
今日が火曜日だとすると、100日後は何曜日か?
解答
曜日は周期7で繰り返すので、重要なのは100を7で割った余りだけである:100=7×14+2なので100≡2(mod7)。
上で証明した加法との両立性により、100日進むことは法7のもとで単に2日進むことと同じ効果を持つ:火曜日+2日で木曜日になる。
したがって火曜日から100日後は木曜日である。100日すべてを一つずつ数える必要は一度もなかったことに注目してほしい——合同式によって大きな数を小さな同値な余りへと縮約できたのである。
例: ISBN-10のチェックディジットを検証する
ISBN-10コードd1d2⋯d10が有効であるのは、まさに∑i=110idi≡0(mod11)のときである。0-306-40615-2が有効なISBN-10かどうかを確認せよ。
解答
数字d1,…,d10=0,3,0,6,4,0,6,1,5,2を並べ、重み付き和∑idi=1(0)+2(3)+3(0)+4(6)+5(4)+6(0)+7(6)+8(1)+9(5)+10(2)を作る。
各項を計算すると0,6,0,24,20,0,42,8,45,20。これらを足すと0+6+0+24+20+0+42+8+45+20=165。
合同式の加法・乗法との両立性により、必要なのは165mod11だけである:11×15=165なので165≡0(mod11)。検証は成功し、0-306-40615-2は有効なISBN-10である。もし1桁でも入力ミスがあれば、重み付き和はほぼ確実に≡0(mod11)ではなくなる。これこそ出版社がこの仕組みを使ってデータ入力ミスを自動的に検出する理由である。
研究研究の最前線における合同式:現代暗号における剰余系
標準的な規約0≤r<mのもとで、−17mod5はいくつか?
a≡4(mod9)かつb≡7(mod9)のとき、abmod9はいくつか?
今日が火曜日なら、50日後は何曜日か?
簡約法則ac≡bc(modm)⟹a≡b(modm)が成り立つことが保証されるのはいつか?