第1章 STAGE 3
時計の算術
余りの世界の足し算と掛け算
🎯 ミッション
mod n の足し算が群になること、p が素数なら mod p の 0 以外の数が掛け算で群になる理由(掛け算表のどの行にも 1 が1回)を説明しよう。mod 7 で 3 の累乗が 1 から 6 を全部回る(3 は生成元)ことを確かめれば合格。
未達成

ねこ博士
この章の最後に15パズルを解くときも、STAGE5 で暗号を作るときも、「何回かくり返すと、もとに戻る」計算が要る。いちばん身近な例は時計だ。いま 9 時だとして、5 時間後は何時かな?

うさ美
9+5=14 ですが、時計は 12 でひと回りするので、14−12=2 で 2 時です。12 時間ごとに同じ時刻に戻るので、足した結果を 12 で割った余りを見ればいいです。

ねこ博士
そう。時計の 12 時を 0 と読みかえると、時刻は 0 から 11 の 12 個で、足し算は「足してから 12 で割った余りをとる」ことになる。2つの整数 a と b を n で割った余りが等しいとき、a ≡ b (mod n) と書いて、「mod n で a と b は合同」と読む。mod は、ラテン語で「尺度」を意味する modulus(モジュラス)を略した言葉だ。たとえば 14 ≡ 2 (mod 12) だ。そして、余りだけで計算する世界を「mod n の世界」と呼ぼう。

うさ美
a を n で割った商を q、余りを r とすると a=qn+r です。b も余りが同じ r なら b=q′n+r。引くと a−b=(q−q′)n なので、a ≡ b (mod n) は「a−b が n で割り切れる」と言いかえられます。

ねこ博士
そう。その言いかえは便利だから覚えておこう。では、余りだけで計算してよい理由を確かめよう。a を n で割った余りが r、b を n で割った余りが r′ のとき、a+b や ab を n で割った余りは、r と r′ だけで決まるかな?

うさ美
a=qn+r、b=q′n+r′ とします。a+b=(q+q′)n+(r+r′) なので、a+b と r+r′ の差は n の倍数です。掛け算は、ab=qq′n²+qr′n+q′rn+rr′=(qq′n+qr′+q′r)n+rr′ なので、ab と rr′ の差も n の倍数です。どちらも、余り r, r′ だけで決まります。
a を n で割った余りを r、b を n で割った余りを r′ とする:a=qn+r、b=q′n+r′
足し算:a+b=(q+q′)n+(r+r′) → a+b ≡ r+r′ (mod n)
掛け算:ab=qq′n²+qr′n+q′rn+rr′
=(qq′n+qr′+q′r)n+rr′(n でくくる) → ab ≡ rr′ (mod n) だから、大きな数も先に余りに置きかえてから計算してよい
=(qq′n+qr′+q′r)n+rr′(n でくくる) → ab ≡ rr′ (mod n) だから、大きな数も先に余りに置きかえてから計算してよい

ねこ博士
その通り。たとえば、100×100 を 7 で割った余りを、10000 を割らずに求めてごらん。

うさ美
100=7×14+2 なので 100 ≡ 2 (mod 7)。だから 100×100 ≡ 2×2=4 (mod 7) です。確かめると、10000=7×1428+4 で、余りは 4 です。

ねこ博士
そう。では、mod n の足し算が群になっているか確かめよう。集まりは 0, 1, …, n−1 の n 個、計算は「足して n で割った余り」だ。群の4つの条件は、閉じている・結合法則・単位元・逆元だったね。

うさ美
足して余りをとれば 0 から n−1 のどれかなので、閉じています。結合法則は、ふつうの足し算で成り立っていて、余りだけで計算しても結果が変わらないので成り立ちます。単位元は 0。a の逆元は n−a で、a+(n−a)=n ≡ 0 です。0 の逆元は 0 です。群になっています。

ねこ博士
そう。これを「mod n の足し算の群」と呼ぼう。数が n 個ある群だ。では掛け算はどうか。0 を掛けるといつも 0 になって、もとに戻せない。だから 0 を除いた 1 から n−1 で考える。mod 7 と mod 6 で掛け算表を作って比べてごらん。
mod n の掛け算表。行の数と列の数を掛けて n で割った余りを書いた。緑のマスが 1、赤のマスが 0。mod 7 や mod 11 のように n が素数なら、どの行にも 1 から n−1 がちょうど1回ずつ出る。mod 6 や mod 8 では 0 が出て、1 のない行がある。「足し算」に切りかえると、mod n の足し算の表(緑が 0)になる

うさ美
mod 7 の表では、どの行にも 1 から 6 がちょうど1回ずつ出ていて、1 もどの行にもあります。だから、どの数にも、掛けて 1 になる相手がいます。たとえば 3×5=15 ≡ 1 なので、3 の逆元は 5 です。mod 6 の表では、2×3=6 ≡ 0 で、0 が出てきてしまいます。2 の行は 2, 4, 0, 2, 4 で、1 がありません。

ねこ博士
そう。mod 6 では、0 でない数どうしを掛けても 0 になることがあるから、1 から 5 の中で閉じていないし、2 には逆元もない。群にならないんだ。では、mod 7 ではなぜいつもうまくいくのか。7 が素数であることが効いてくる。p を素数として、1 から p−1 のある数 a の行を考えよう。その行に同じ数が2回出たとする。つまり、1 から p−1 の異なる x, y(x>y とする)で a×x ≡ a×y (mod p) になったとする。

うさ美
a×x−a×y=a(x−y) が p で割り切れます。a(x−y) を素因数分解すると p が出てきます。素因数分解はただ1通りなので、その p は、a の素因数分解か x−y の素因数分解のどちらかから来ているはずです。でも、a も x−y も 1 以上 p−1 以下で、p で割り切れません。矛盾です。

ねこ博士
そう。素因数分解がただ1通りであることは、中学校から使ってきたね。なぜただ1通りなのかは、第2章でじっくり調べる。これで、a の行に同じ数が2回出ないことが分かった。それから、a×x が 0 になることもないね。

うさ美
a も x も p で割り切れないので、同じ理由で a×x も p で割り切れません。だから a の行の p−1 個のマスには、1 から p−1 の p−1 個の数が、重ならずに全部入ります。1 も必ず1回入るので、a×x ≡ 1 となる x、つまり a の逆元があります。

ねこ博士
その通り。だから、p が素数なら、mod p の 1 から p−1 は掛け算で群になる。単位元は 1 だ。これを「mod p の掛け算の群」と呼ぼう。数が p−1 個ある群だね。

うさ美
mod 6 でうまくいかなかったのは、6=2×3 と分けられるので、6 で割り切れない 2 と 3 を掛けた積が、6 で割り切れてしまうからですね。

ねこ博士
そう。次は、1つの数をくり返し掛けていこう。mod 7 で、3, 3², 3³, … を順に計算してごらん。

うさ美
3、3²=9 ≡ 2、3³ ≡ 2×3=6、3⁴ ≡ 6×3=18 ≡ 4、3⁵ ≡ 4×3=12 ≡ 5、3⁶ ≡ 5×3=15 ≡ 1。6 回目で 1 に戻りました。途中で 1 から 6 が全部1回ずつ出ています。

ねこ博士
そう。群の要素 a をくり返し掛けて、はじめて単位元になる回数を、a の位数(いすう)という。mod 7 の掛け算の群で、3 の位数は 6 だ。では 2 はどうかな?

うさ美
2, 4, 8 ≡ 1。3 回で 1 に戻るので、2 の位数は 3 です。2 を掛け続けても 2, 4, 1 しか出てこなくて、3, 5, 6 には行きません。

ねこ博士
その通り。3 のように、くり返し掛けるだけで群の要素を全部作れる要素を生成元という。そして、1つの生成元の累乗で全部が書ける群を巡回群と呼ぶ。くるくる回って全部を巡るからだ。mod 7 の掛け算の群は、3 を生成元とする巡回群なんだ。
mod 7 で 3 をくり返し掛ける(1つ前の余りに 3 を掛けて、7 で割った余りをとる)
3¹ ≡ 3、3² ≡ 9 ≡ 2、3³ ≡ 2×3=6、3⁴ ≡ 6×3=18 ≡ 4、3⁵ ≡ 4×3=12 ≡ 5、3⁶ ≡ 5×3=15 ≡ 1
1 から 6 が全部出て、6 回目で 1 に戻る → 3 の位数は 6、3 は生成元
2 なら 2¹ ≡ 2、2² ≡ 4、2³ ≡ 8 ≡ 1 → 3 回で戻る。2 の位数は 3
mod n の時計。0 から n−1 を時計のように並べ、1 から「×a」を(または 0 から「+a」を)くり返したときの行き先を矢印で結んだ。金の点が出発点、紫の点が通った数。何回で出発点に戻るか(位数)と、全部の数を通るか(生成元か)を表示する

うさ美
mod n の足し算の群も、0 から 1 を足し続ければ 0 から n−1 を全部通るので、1 が生成元の巡回群です。正三角形の回転 e, r, r² も、r をくり返すだけで全部出てくるので巡回群です。

ねこ博士
そう。では、正三角形の6つの操作の群全体は、巡回群かな?

うさ美
巡回群なら、位数が 6 の操作が1つあるはずです。でも r と r² は3回で e に戻るので位数 3、s₁, s₂, s₃ は2回で戻るので位数 2、e は位数 1 です。位数 6 の操作がないので、巡回群ではありません。

ねこ博士
そう。巡回群では aman=am+n=anam だから、いつでも順番を入れかえられる。順番で結果が変わる正三角形の群は、その点からも巡回群ではないと分かるね。最後に、ここまでに出てきた位数を並べてみよう。mod 7 の掛け算の群は 6 個の数からなり、位数は 1, 2, 3, 6 のどれかになる。正三角形の群も 6 個で、位数は 1, 2, 3 だ。どちらも、位数が群の個数 6 の約数になっている。

うさ美
mod 7 の掛け算の群で全部の位数を出すと、1 は 1、2 は 3、3 は 6、4 は 3、5 は 6、6 は 2 です。6²=36 ≡ 1 だからです。確かに全部 6 の約数で、位数 4 や 5 の数はありません。

ねこ博士
そう。これは偶然ではない。次のステージで、その理由を証明する。そこから、暗号のもとになる「フェルマーの小定理」が出てくるんだ。
【このステージの成果】
a ≡ b (mod n):a と b を n で割った余りが等しい ⇔ a−b が n で割り切れる
足し算・掛け算の結果の余りは、もとの数の余りだけで決まる → 余りに置きかえて計算してよい
mod n の足し算は群(単位元 0、a の逆元 n−a)
p が素数なら mod p の 1〜p−1 は掛け算で群:a の行に同じ数が2回出ない(素因数分解の一意性)→ 1 が必ず1回出る。mod 6 では 2×3 ≡ 0 で群にならない
位数:くり返して初めて単位元になる回数。mod 7 で 3 の位数は 6(生成元)→ 巡回群。正三角形の群は位数 6 の操作がなく巡回群でない
確認クイズ
Q1. mod 7 で 3 の逆元(掛けて 1 になる数)は?
正解! 3×5=15=7×2+1 なので 3×5 ≡ 1 (mod 7)。mod 7 の掛け算表の 3 の行で、1 が出るのは 5 の列。
Q2. mod 6 の 1〜5 が掛け算で群にならない理由として正しいものは?
正解! 6=2×3 なので 2×3=6 ≡ 0 となり、0 が出る。2 の行は 2, 4, 0, 2, 4 で 1 がなく、2 には逆元がない。p が素数なら、こういうことは起きない。
Q3. mod 7 で 2 の位数(2 をくり返し掛けて、初めて 1 になる回数)は?
正解! 2, 2²=4, 2³=8 ≡ 1。3 回目で初めて 1 になるので位数は 3。2 は 1, 2, 4 しか作れず、生成元ではない(生成元は 3 や 5)。