他のメモへのリンク集。リンク集を飛ばして、このページの前書きへ。本文の目次へ。21、22などの数字は、メモの番号です。
[遊びの数論] 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20
きちんとまとまった記事ではなく、雑多なメモ。誤字脱字・間違いがあるかもしれません。
2024-10-27 正七角形のいんちき作図法 だまされないぞ!
問題 下記の作図は、どこが間違っているか。
任意の線分 PQ を延長します。その直線上の P の反対側で PQ:QR = 1:3 になるような場所に印を付け(コンパスを使って)、点 R と呼びましょう。さらに QR:RS = 1:2 になるような点 S に印を付けます。
S を中心に半径 PS の円を描き、円 S と呼びます。円 S が直線 PS と交わる新しい点を A とします。
Q を通り PS と直交する直線が、円 S と交わる点を D, E とします。
D を中心に半径 DE の円を描き、それが円 S と交わる新しい点を C とします。
同様に、コンパスの幅を DE に固定して、円 S 上に等間隔の点 A, B, C, D, E, F, G を次々と作り、線で結べば、どの辺も長さが DE と同じ。つまり正七角形 ABCDEFG の出来上がり♪
2024-10-28 正七角形のいんちき作図法(その2) ヒント
この「いんちき作図」、少々惑わすような記述もあれど、要するに PQ:QS = 1:9 と言っている。
PS の長さを 1 としよう。すると QS の長さは 0.9。
…おいおい、そりゃーおかしくねーかぁ?
だってさぁ、直角三角形 QSD を考えると SD = 1 じゃん、円の半径だから。ってことは、作図が正しけりゃ cos (π/7) = 0.9 になっちまうぞ!
(あるいは S を原点として、符号も考えるなら cos (6π/7) = −0.9 ってことに。)
コサイン(cos)ってのは、 45° とかの「きっかりした角度」を入れても、出力は √2/2 = 0.7071… とかの無理数だぜ、普通?
ましてや π/7 = 180°/7 = 25.714…° みてーな「割り切れねぇ角度」のコサインが、きっかり 0.9 = 9/10 になるわけねーだろ、感覚的に言って!
ダウト、ダウト、ダウト!
直観的にはそう思える。でも、どうやってそれを証明しましょう?
それにしても、作図がおかしいのなら、何でちゃんと正七角形になってるように見えるんだろう。正七角形が「作図不可能」なら、なぜ現実に正七角形の物体が存在するのだろう…?
あなたは正七角形の存在を信じますか
2024-11-01 正七角形のいんちき作図法(その3) 解明
原点 S を中心とする半径 1 の円。「点 Q (−0.9, 0) を通る垂直線と円が交わる点 D, E は、正七角形 ABCDEFG の頂点なんだぜぇ~」という、やぶから棒の主張。
今日という今日は、何が何でも、このいんちき作図を論破しなければなるまいっ!
直角三角形 QSD に三平方の定理(ピタゴラスの定理)を適用すると:
|QS|2 + |QD|2 = |DS|2
|DS| は円の半径だから 1 で、その平方は 1。長さ |QS| が 0.9 つまり 9/10 だとしたら:
(9/10)2 + |QD|2 = 1
つまり 81/100 + |QD|2 = 1
っつーことは |QD|2 = 1 − 81/100 = 19/100 なんで、結局 QD の長さ、つまり D の縦座標は…
|QD|2 = 19/100 の両辺の(正の)平方根を考えると、こうなる:
QD = √19/10 = 約 0.436
要するに、点 D の座標は、小数で書くと…
約 (−0.9, 0.436)
だが「約」じゃぁ、厳密な議論ができねぇぞ。分数で書くか?
(−9/10, √19/10)
そもそも座標の形では、扱いにくい。複素数表現を使おう:
−9/10 + (√19/10)i
ここで複素数というのは、横座標の 1 倍(要するに横座標そのもの)と、縦座標の i 倍を足したもの。これによって平面上の点を「数」と同一視できるようになり、単純計算でさくさく扱える。 i という数が i2 = −1 という性質を持つこと(後述)にだけ注意すれば、複素数といっても、普通の数と全く同じように足し算・引き算・掛け算などができるのだっ。
正七角形そのものは、複素数とは関係ない幾何学の話題のようだが、複素数は、このような円周等分を扱うための強力なツール、
ABCEDFG を正七角形とする。ただし A を (1, 0) として、反時計回りに、頂点に B, C, ··· と名前を付けている。すると D の偏角は 360°/7 × 3 だ。
ここで偏角というのは、原点 S から見て、考えている複素数(に対応する点)がどっちの方向にあるかを表す角度。横座標の正の向き S→A を 0° として、反時計回りに測る。 D の偏角は ∠ASD というわけ。 ABCDEFG が正七角形なら、 B, C, D などは円周を7等分した点なので、 B の偏角 ∠ASB は 360° の 1/7 になり、 C の偏角はその 2 倍、 D の偏角は 3 倍···などとなる。
ところで 360°/7 × 3 つまり 1080°/7 と言われても、分子が 4 桁もあって、少々扱いにくい。一体どっちの方向なのか、パッと分かりにくい…。そこで 360° を 2π と略すことがある――半径 1 の円の円周 360° は 2π なので(そして、扇形の中心角と弧の長さは比例しているので)、直接的に「○○度の角度」と言う代わりに、「その角度に対応する弧の長さ」で角度を言い表すのだ。もしその表現法を使うと B の偏角は 2π/7 となり(360° の 1/7 なので)、 C の偏角は 2 倍の 4π/7、 D の偏角は 3 倍の 6π/7 などとなる。シンプル。 7π/7 = π は 180° のことなので、この表記法なら、 D の偏角 6π/7 が 180° に近いがそれよりちょっと小さいこと(180° の 6/7 であること)もパッと分かって、便利。
〔注〕 「なんで円周と直径の比の π = 3.14… が角度なんだよ。 3.14… のどこが角度なんだよっ?」という抗議もあるかもしれないが、それをゆーなら「なんで整数 360 が一周の角度なんだよっ!」という意見だって、あり得る。どっちかというと、むしろ 360 の方が、根拠薄弱な整数(歴史的に、古代人が60進数を使っていた名残らしい)。例えば「直角は 90°」ってことになってるけど、直角のどこを見ても 90 なんて数は出てこないし。他方、 2π = 6.28… には「半径 1 の円の周囲の長さ」という明確な意味があり、「一周の長さが π なので、それを一周の角度としよう」というのは、根拠のある取り決めだろう(それがベストかどうかはともかく)。
でもまぁ、今回は 360°/7 × 3 という、算数っぽい表記を使うことにする。
さて、本題の話を進める前に、ちょっとだけ複素数について復習を。
z を任意の複素数(ただし 0 以外)とする。すると z の偏角が θ なら z2 の偏角は 2θ となり、 z3 の偏角は 3θ となり、 z4 の偏角は 4θ となる(以下同様)。この性質は、虚数単位と呼ばれる i ――つまり点 (0, 1) に対応する数――の性質とも、関係する。 i は偏角 90° なので i2 の偏角は 180° となるが、偏角 180° とは、原点から見て、横軸(実数)の負の方向に他ならない。よって、少なくとも偏角に関する限り i2 と −1 は、原点から見て同じ方向。
偏角は「原点から見て、どっちの向きにあるか」という情報を与えてくれるが、「原点からどのくらい離れているか」という距離の情報を与えてくれない。例えば +2 と +8 は異なる数だが、偏角はどちらも 0° だし、 −2 と −8 は異なる数だが、偏角はどちらも 180° だ(360° の違いは方向に影響しないので −180° と言ってもいい)。数 z が2乗・3乗・4乗···されたとき、結果の数 z2, z3, z4, ··· は、もともとの数 z から見て、絶対値もそれぞれ2乗・3乗・4乗···される。例えば −2 の絶対値は 2 なので、 (−2)3 の絶対値は 23 = 8。まぁ、当たり前。
で、偏角とは逆に、絶対値は「原点からの距離」の情報を与えてくれるが、方位の情報を与えてくれない。けれど −2 の偏角は 180° で、数が 3 乗されれば偏角は 3 倍されるので、 (−2)3 の偏角は 180° × 3 = 540° であり、 360° の違いを無視すれば、これは 180° と同じ方位――つまり負の実数。以上の二つの情報を総合すると、 (−2)3 は絶対値 8 の負の実数、つまり −8 に等しい。もちろんこれは、
(−2)3 = (−2) × (−2) × (−2) = −8
というだけのことだけど。
別の例として、 i に当たる点 (0, 1) は原点からの距離(つまり絶対値)がちょうど 1 なので、 i の絶対値は 1。そして絶対値 1 の数は、2乗されても、3乗されても、4乗されても、絶対値が 1 のまま。 1 という絶対値の2乗・3乗・4乗などは 1 のままだから。よって i2 は偏角 180° で絶対値 1 の数に等しい。
すなわち i2 = −1 となる。
〔参考〕 上記の偏角・絶対値の性質については、あまり悩まず「事実」と認めても構わないが、 tan と arctan を使って説明可能。
本題に戻ると: 正七角形の頂点 D に対応する複素数を z とするなら、 z7 = 1 でなければならない。
理由。前述のように z の偏角は 360°/7 × 3 だ。よって z7 の偏角は、その 7 倍、つまり:
360°/7 × 3 × 7 = 360° × 3
方位なので 360° の整数倍の違いを無視すると、上記の偏角は 0° と同じ向き。しかも D は、原点からの距離(つまり絶対値)が 1 なので、何乗されても結果は絶対値 1 のまま。よって z7 は「偏角 0° で絶対値 1 の点」に対応。その点とは A (1, 0) であり、数としては 1 + 0i = 1 に等しい。
この作図によると D に当たる複素数は z = −9/10 + (√19/10)i である(前述)。つまり、作図が正しければ、
(−9/10 + (√19/10)i)7 = 1 ★
が成立するはずだが、この等式は、つじつまが合わない。というのも、具体的に計算するまでもなく、 ★ の左辺を展開すれば、因子として (√19/10)i の偶数乗や奇数乗が生じることは明らかだろう。「偶数乗」されれば √19 は整数 19 や 192 などになってくれるけど、その場合でも、分母の 10 の偶数乗は残ってしまうので、全体としては「整数」にはなりそうにない。さらに「奇数乗」の方では √19 という無理数の成分が残ってしまう。なぜなら √19 の1乗・3乗などは、それぞれ √19, 19√19 などに等しいが、こうして生じる √19 の倍数たちは、最後まで無理数のままだ――たとえ
−9/10 の累乗や、その整数倍が掛け算されても。よって ★ の左辺が、右辺の整数 1 に等しくなるわけないっ!
結論として、この作図は、やはりいんちき。でも関連して、結構いろんな疑問が…
第一に、単純なことだが、上記の ★ を具体的に計算するには? 左辺が整数 1 と等しくないことは、まぁ明らかだろうが、今のままだと一抹の疑念が残る――もしかすると、複素数の不思議な振る舞いによって ★ の左辺は簡約され、ちょうど 1 になるのでは?
「理論的にそれはあり得ない」と分かっていても、この問題に白黒を付ける最も確実な方法は、やはり ★ を具体的に計算することだろう。いんちきと言っても、肉眼では正七角形と区別できないような作図なので、 ★ の値は近似的には 1 に等しいと予想される。具体的にどんな値か?
第二に、作図法がいんちきだとすると、なぜ結果が本物の正七角形のように見えるのか?
第三に、この作図法は駄目だとして、ではどのような作図なら良いのか。例えば、頂点 D の本当の座標値は…。素朴で自然な疑問だが、やや深い問題をはらんでいるようだ。
2024-11-10 正七角形のいんちき作図法(その4) 馬脚
画像は、 gnuplot が捉えたいんちき作図の実態。
座標 (−0.9, 0) の点 Q を通る垂直線と、単位円の交点を D, E として、その DE の長さを一辺とした場合、本物の正七角形と比べ、ほんの少し辺が長過ぎるようだ…。
その結果、もしコンパスの幅を DE に固定して、頂点 C, B, A を順々に(時計回りに)作ると、 A はちょうど (1, 0) にならず、わずかに第4象限にはみ出す。
画像を拡大すると、肉眼でも確認できる――(自称)正七角形の緑の辺 AB の A は、横軸(青)に重ならず、横軸を(微妙だが確かに)オーバーランしているっ!
いんちきの正体、見たり。これは、正しい円周7等分ではない。
この作図のいんちきについては、もはや計算的にも視覚的にも明らかだが、「どこがどのくらいずれているのか・正しい寸法はどうなるのか」といった細部について、もう少し考えてみたい。(続く)
2024-11-11 正八角形と √ i 基礎と応用(第二補充法則)
#遊びの数論 #1 の原始根 #円周等分 #第二補充法則 #(34)
√−1 つまり「2 乗すると −1 になる数」は、数直線上のどこにも無い。
1次元の「数直線」から、2次元の「数平面」に世界を広げると、 √−1 は原点から 90° の方角の、距離 1 の場所にあり、しばしば記号 i で表される(「方角」は 0 を中心に +1 がある向きを 0° として、反時計回りに)。
では i のそのまた平方根―― 2 乗すると i になる数――は、何か。 √ i とか −√ i と書くことは可能だが、具体的には:
√ i = √2/2 + i⋅√2/2
この数は 2 乗すると i なんで 4 乗すると −1 になり、 8 乗すると 1 になる。それ自体としても何となく面白いが、この数を使うことで、古典数論のややこしい問題が軽妙に解決する。
【1】 「1次元の数」である整数や有理数や実数(例えば 5 や −3)が 1乗・2乗・3乗・4乗…されれば、絶対値が 1乗・2乗・3乗・4乗…されるのは明らかだろう。符号については、もともとの数が正なら何乗されても正だし、もともとの数が負の場合、奇数乗(1乗・3乗…)されれば負のままだが、偶数乗されれば正になる。特殊ケースとして、もともとの数が 0 の場合は 1乗・2乗・3乗・4乗…されても、もちろん 0 のままで、正でも負でもない(符号が定まらない)。
「2次元の数」である複素数 w の一般形は w = u + vi だが(u, v: 実数)、この w も、絶対値に関しては、実数(1次元の数)と全く同じ原則に従う。「符号」に関しては、平面上には 360° の方角があるので、「+ の向きと 180° 反対の − の向き」というだけでは、向きを表し切れない。原点 → +1 の向きを 0° として、反時計回りに向きを表す――これを偏角という。複素数 w が 1乗・2乗・3乗・4乗…されたとき、結果の偏角は 1倍・2倍・3倍・4倍…に増える。ちなみにこの場合も、特殊ケース w = 0 は 1乗・2乗・3乗・4乗…されても 0 のまま偏角不定だが、それはとりあえずどうでもいい(以下の話と無関係)。
以上によって、複素数 w の整数乗は、一応何でも定義される。注意事項:
【2】 原点を中心とする単位円(半径 1 の円)の「円周上の点に当たる複素数」の場合、絶対値(つまり原点からの距離)が 1 なので、何乗されても絶対値は 1 のままで、累乗の結果は、依然として同じ円周上の点に当たる。 0乗・1乗・2乗・3乗…されれば、偏角だけが 0倍・1倍・2倍・3倍…になる。すると、「2 乗すると i になる数」は、単純に考えれば、偏角 45° だろう(i の偏角が 90° なので「2 倍が 90°」の角度を考えた)。
「単位円上の偏角 45° の点」に当たる数を z とすると、事実 z2 = i が成立。
三角関数を使っていいなら、直ちに、
z = cos 45° + i sin 45° = √ i = √2/2 + i⋅√2/2
となるが、三角関数を使わなくても、画像の直角三角形 OAB から容易に同じ結論に至る: 実部 = |OA|、虚部 = |AB|、そして ∠A = 90° なんで、三平方の定理から:
|OA|2 + |AB|2 = |OB|2 = 1
右端の等号の根拠は |OB| = 単位円の半径 = 1 ってこと。 ∠O = 45° なんで ∠B も 45° で、これは直角二等辺三角形: |OA| = |AB| だ。だから、上の式はこうなる:
|AB|2 + |AB|2 = 1 つまり |AB|2 = 1/2
∴ |AB| = 1/√ = √2/2
|OA| もこれと等しいのだから z = |OA| + |AB| i
=
√2/2 + i⋅√2/2 だ。
〔検算〕 (√2/2 + i⋅√2/2)2 = 2/4 + 2(√2/2)(i⋅√2/2) + (−1)2/4 = 2i⋅(2/4) = i
この z は z2 = i を満たすので、 z4 = (z2)2 = i2 = −1 となり、 −1 の 4 乗根でもある。 z4 = −1 ということから、 z8 = (z4)2 = (−1)2 = 1 (= z0) となり、 z は 1 の 8 乗根でもあるし、 z6 = (z4)z2 = (−1)i = −i という関係も成り立つ。
さらに z5 = (z4)z = −z となるが、この
z5 = −z = −√2/2 − i⋅√2/2
という数は、 i のもう一つの平方根 −√ i に当たる。実際 z5 も 2 乗すると i になる: (z5)2 = z10 = (z8)z2 = (1)i = i なんで。
同様に z3 と z7 は −i の平方根で −1 の 4 乗根。 △OAB ≡ △OCD なんで、△OAB の寸法を求めたときと同様に、
z3 = −√2/2 + i⋅√2/2
ということが判明(実部の符号に注意)。 ±√−i の ± のどっちが z3 でどっちが z7 かというテクニカルな問題は、本筋とあまり関係ないが、一般的には実部が(正負の区別も含めて)大きい方を + とする(ちなみに、もし実部が等しいなら、虚部が正の方を + とする: +i と −i の関係は、これに基づく)。
〔参考〕 三平方の定理のような幾何学的考察に頼らず、純粋に代数的に扱うことも可能: ±√ i , ±√−i の四つは −1 の 4 乗根なので x4 = −1、つまり
x4 + 1 = 0
を満たす。これを回文4次式として処理すると:
(x2 + 1)2 − 2x2 = 0 つまり (x2 + 1)2 − ((√2)x)2 = 0
∴ (x2 + (√2)x + 1)(x2 − (√2)x + 1) = 0
後は二つの2次方程式 x2 + (√2)x + 1 = 0 または x2 − (√2)x + 1 = 0 を機械的に解くだけ。 √ i のネタでは de Moivre とか言い出す人が多いような気もするけど、この場合「4次式の根」を求めるのが一番シンプルだろう。
【3】 引き続き z を 1 の 8 乗根 √2/2 + i⋅√2/2 とする。 z8 = 1 なので:
z7 = z7 / 1 = z7 / z8 = z7−8 = z−1
同様に:
z5 = z−3
より一般的に、任意の整数 m, n について m ≡ n (mod 8) なら zm = zn だ。特に zm の指数 m については、 8 で割った余りに置き換えることができる。例えば z19 = (z8)2z3 = (1)2z3 = z3 について、 3 は 19 を 8 で割った余り。
さて、
z = +√2/2 + i⋅√2/2 と z−1 = z7 = +√2/2 − i⋅√2/2
のペアも、
z3 = −√2/2 + i⋅√2/2 と z−3 = z5 = −√2/2 − i⋅√2/2
のペアも、実部が等しく虚部の符号が反対なので、ペアの相手と足し合わせると虚部が消え、実部が 2 倍される:
z + z−1 = 2(√2/2) = √2 ア
z3 + z−3 = 2(−√2/2) = −√2 イ
(直観的には、「足し合わされる 2 点」と「原点」を頂点とするひし形の、「もう一つの頂点」が和。)
〔参考〕 ア・イの値は、互いに相手の −1 倍: z3 = −z−1, z−3 = −z なので、イ左辺の第 1 項・第 2 項は、それぞれア左辺の第 2 項・第 1 項の −1 倍。
【4】 ここからが本題。 p を 3 以上の任意の素数とする(z は引き続き 1 の 8 乗根を表す定数)。アから:
√2 = z + z−1
その両辺を p 乗して「新入生の夢」を適用すると:
(√2)p = (z + z−1)p ≡ zp + z−p (mod p) ウ
〔例〕 p = 3 のとき:
(z + z−1)3 = z3 + 3(z)2(z−1) + 3(z)(z−1)2 + (z−1)3
この右辺の第2・第3項は 3 の倍数なので mod 3 では ≡ 0 となって消滅、両端の 2 項だけが残る。ア・イを考慮すると、
(z + z−1)3 ≡ z3 + z−3 (mod 3)
とは (√2)3 ≡ −√2 つまり 2√2 ≡ −√2 を意味する。この最後の合同式を整理すると:
3√2 ≡ 0 (mod 3)
√2 を整数の仲間(代数的整数)と考えると、左辺は確かに 3 の倍数なので、この合同式は合っている。同様に p = 5 のとき:
(z + z−1)5 = z5 + 5(z)4(z−1) + 10(z)3(z−1)2
+ 10(z)2(z−1)3
+ 5(z)(z−1)4
+ (z−1)5
この右辺の第2~第5項はどれも 5 の倍数なので mod 5 では ≡ 0 となり、両端の 2 項だけが残り、結論は(代数的整数に関する)有効な合同式:
(√2)5 ≡ −√2 (mod 5)
この右辺は z5 + z−5 = z−3 + z3 とイに基づく。整理すると:
4√2 ≡ −√2 つまり 5√2 ≡ 0 (mod 5)
p = 7 の場合、合同式の右辺が正の平方根になるが、結論は正しい:
(√2)7 ≡ √2 つまり 8√2 ≡ √2 (mod 7)
p は 3 以上の素数なので、「8 の倍数 ± 1」か、または「8 の倍数 ± 3」の形を持つ。 z8 = 1 なんで、 z の指数は mod 8 で簡約可能(前述)。もし p が 8k+1 の形なら zp + z−p は z1 + z−1 に等しく、もし p が 8k−1 の形なら zp + z−p は z−1 + z1 に等しい; いずれにしても p が 8k±1 の形なら zp + z−p = z + z−1。同様に p が 8k±3 の形なら zp + z−p = z3 + z−3。
よって、次の結論に至る。
命題1 合同式ウの右辺は、素数 p が「8k±1 型」か「8k±3 型」に応じて、アの √2 か、イの −√2 に値が等しい。つまり:
(√2)p ≡ ±√2 (mod p) エ
複号選択は上記のごとし。
p−1 は正の偶数、 (p−1)/2 は自然数。「2 が平方剰余か非剰余か」に関する Euler の基準 の 2(p−1)/2 を、こう書くことができる:
2(p−1)/2
=
[(√2)2](p−1)/2
=
(√2)p−1
∴ (√2)p−1 = 2(p−1)/2 ≡ (2/p) (mod p) ☆
☆ の右側の分数のように見えるものは Legendre 記号。 ☆ と命題1を見比べると、もしもエの両辺を √2 で割ることが許されれば、直ちに第二補充法則が確定する。技術的には代数的整数は「環」と呼ばれるもので割り算(乗法逆元)の保証はないのだが、この場合、エの両辺を √2 倍すれば、普通の意味での mod p の合同式になり、その両辺を 2 で割ることができるので、今述べた割り算は事実上、実行可能。すなわち、たったこれだけで第二補充法則が証明されたのであるっ!
第二補充法則 3 以上の素数 p が「8k±1 型」か「8k±3 型」に応じて:
(2/p) = ±1
この複号を式で表すなら(ただし便宜上 p2 = p × p を pp と表記):
(2/p) = (−1)(pp−1)/8
補足: エを √2 倍して 2 で割ったものと ☆ の比較から得られるものは、直接的には合同式、
(2/p) ≡ ±1 (mod p)
であるが、合同記号を等号に置き換えることができる。というのも、右辺の ±1 (mod p) は 0p±1, 1p±1, 2p±1, ·· · あるいは −1p±1, −2p±1, ·· · の形の整数のどれかを漠然と表すけれど、左辺の Legendre 記号は「漠然とそのどれか」というわけではなく、定義によって +1 or −1 という値しか持つことができない。よって右辺も漠然としたままでいることはできず、左辺の値に応じて 0p±1 つまり +1 or −1 になる。
〔注〕 「複号を表す式」は、「p の型に応じて +1 と −1 のどちらかが選択される」というその選択を「−1 の2次式乗」の形で表したもの。 p = 8k ± 1 なら:
pp − 1 = p2 − 1 = (8k)2 ± 2⋅8k⋅1 + 12 − 1 = 64k2 ± 16k
その 1/8 つまり 8k2 ± 2 は偶数なので (−1)(pp−1)/8 = +1。一方 p = 8k ± 3 なら:
pp − 1 = (8k)2 ± 2⋅8k⋅3 + 32 − 1 = 64k2 ± 48k + 8
その 1/8 つまり 8k2 ± 6k + 1 は奇数なので (−1)(pp−1)/8 = −1。確かに複号の選択と一致するけど、どこから (pp−1)/8 という2次式が出てくるのか。この2次式は、 H = (p−1)/2 と置いたときの (H + 1)(H/2) = (p+1)(p−1)/8 に当たる; 平方剰余の相互法則の第三証明と関連して、 (H + 1)(H/2) は一定の意味を持つ。しかし単に「第二補充法則の ± を一つの式にまとめた速記法」のようなもの、と考えてもいいだろう。
p が「8k±1 型」か「8k±3 型」かに応じて、 2 mod p は平方剰余または非剰余――という第二補充法則は、19世紀初めの古典整数論でも既に確定していたのだが、その証明法は回りくどく見通しが悪かった。直接攻略は p = 8k+1, 8k+3, 8k−3, 8k−1 の四つの型に分けて検討するもので、平易だが時間がかかる。現在の多くの入門書では、相互法則の第三証明の副産物として、第二補充法則を証明している; 巧妙ではあっても、場当たり的な感じは否めない。
今回、複素数の範囲で 1 の 8 乗根を利用して再考したところ、 p が「8k±1 型」か「8k±3 型」かで 2 mod p の平方属性(平方剰余か非剰余か)が変わることが、簡潔に示された。単発的にこの議論だけを提示するなら、依然としてミステリアスで奇妙でさえあるが、実は今回述べた手法は、この問題限定の特殊的なものではなく、自然な一般化・柔軟な応用の余地を秘めている。その一つの頂点は、 Gauß 和を経由した平方剰余の相互法則の証明だろう。
【5】 ☆ の両辺を √2 倍すると:
(√2)p ≡ (2/p)√2 (mod p) オ
ウ ≡ オが、鍵となる。
〔例1〕 p = 3 のとき 2 は非剰余:
オの左辺 = (√2)3 = 2√2 右辺 = (−1)√2
オは 2√2 ≡ (−1)√2 つまり 3√2 ≡ 0 (mod 3)
√2 を整数の仲間だと思えば 3√2 は確かに 3 の倍数なので、この結論は正しい。
〔例2〕 p = 5 のとき 2 は非剰余:
オの左辺 = (√2)5 = 22√2 = 4√2 右辺 = (−1)√2
オは 4√2 ≡ (−1)√2 つまり 5√2 ≡ 0 (mod 5)
この結論も正しい。
〔例3〕 p = 7 のとき 2 は平方剰余:
オの左辺 = (√2)7 = 23√2 = 8√2 右辺 = (+1)√2
オは 8√2 ≡ (+1)√2 つまり 7√2 ≡ 0 (mod 7)
この結論も正しい。
第一に、 ☆ は Euler の基準をファンシーに書き換えただけ: 2 の (p−1)/2 乗の代わりに √2 の p−1 乗とした。その両辺を √2 倍したもの――すなわち (√2)p に関する合同式オ――が成り立つのは、当然だろう。有理数以外を含む合同式の「怪しさ」に目をつぶればだが…。
第二に、 1 の 8 乗根についての考察から (√2)p が ±√2 と合同であること、この複号の選択がまさに「第二補充法則の Legendre 記号の値」であることも、容易に示される(ウ参照)。
以上の二つを組み合わせると、第二補充法則は自然に証明される。古典的証明法と比べると、端的で透明度が高い。
もとより平方剰余と円周等分は Gauß 和などを通じて関連しているとはいえ、「円周等分をツールとして、平方剰余を扱うこと」は、ワクワクする。一見あまり関係ないような二つの領域、むしろ対極的とも思える「複素数の世界」と「整数の世界」。その二つを関連付ける不思議な回廊を、われわれはかいま見る。「秘密の通路」は実はつながっていて、通り抜け可能。大げさに言えば、宇宙のワームホールを使った「ワープ航法」のようなもの…。「有理数以外を含む合同式」を当たり前のように扱うためには、それなりの理論的準備が必要だが、今回の内容程度なら、「建前上、その種の合同式を使わないで証明を完成させること」も可能かもしれない。
実は Gauß, D.A. でも、似た手法が既に使われている――第五補充法則の直接証明において(artt. 122–123)。先行する Legendre も、理論的な土台は未完成だったとしても、この種の手法を実際に使っていたのかもしれない。
Ireland & Rosen は今回の内容を、 Gauß 和についての議論の一つ前の節で、記している。本題の Gauß 和についての証明より面白い、と感じられた。
2024-11-15 予想の 45° 斜め上をいく √ i の活用
#遊びの数論 #1 の原始根 #円周等分 #第二補充法則 #(34)
問題 x = 6, y = 2 は x2 = 17y + 2 を満たす。 x = 7, y = 3 は x2 = 17y − 2 を満たす。では、次のそれぞれを満たす整数 x, y があるか?
あ x2 = 7y + 2 ア x2 = 7y − 2
い x2 = 13y + 2 イ x2 = 13y − 2
う x2 = 19y + 2 ウ x2 = 19y − 2
「あ」は試行錯誤でも、簡単に解が見つかる: (3)2 = 7(1) + 2 だっ!
試行錯誤で解を見つけられれば、「解がある」と言い切れる。けどもし「解がない」場合、どうやってそれを示せばいいのだろう。「全部の可能性を試したけど、解はありませんでした」というのも一つの方法だが、可能性がいっぱいあったら全数チェックは大変だし、可能性が無限にあったら全数チェックは不可能。
この種の一見たわいもない「整数の問題」が、「虚数単位 i の平方根」によって解明されるというのは、意表を突く。
1. そもそもこんな問題に、どんな意味があるのか。どういうイメージを抱けばいいのか…。「あ」の x2 = 7y + 2 をこう解釈できる:
整数を平方して 2 にできるか――ただし「7 の倍数のずれ」があってもいい。
x2 = 2 を満たす整数が見つからなくても(そんな整数あるわけねぇ!)、ターゲットの 2 という数に 7 や 14 や 21…のずれがあってもいい、つまり、
ああ x2 = 7 + 2 = 9
あい x2 = 14 + 2 = 16
あう x2 = 21 + 2 = 23
···
の、どれを解いてもいいよ、と。 x2 = 7y + 2 とは、まさにそういう意味だ。「ああ」が解 x = ±3 を持つことは、すぐ分かるし、「あい」も解 x = ±4 を持つ。 23 は平方数じゃないんで「あう」は駄目だけど。
さらに、こう解釈することもできる:
ある月の1日・2日・3日…は月曜・火曜・水曜…です。この月に「平方すると2日と同じ曜日(火曜)になる日付」はありますか?
上述のように、3日(水曜)、4日(木曜)は条件を満たすし、実はこの月の水曜・木曜は全部、条件を満たす(この考察では月の日数を通常の28~31日に限らず、いくらでも日付があるものとする)。例えば10日(水曜)の平方は 100 だが、 98 は 7 の倍数なので、この月の100日目は 98 + 2 = 7の倍数 + 2 = 2日と同じ火曜日。曜日の世界での掛け算(2乗)というのは奇妙な概念かもしれないが、それが「パラレルワールドの算数」。普通の整数の加減乗除は「有理数の世界」(無限個の数を含む)を生むが、実は曜日の世界でも同様の四則演算が成り立ち、演算結果は再び七つの曜日。加減乗除ができるという点で、「曜日の世界」は「有理数の世界」と似ているが、もちろん別の世界。この別世界は、有限個(七つ=素数個)の要素だけで完結する。
このような世界(一般に、素数個の要素から成るパラレルワールド)は、それ自体として面白く、時に意外な美しい性質を示し、娯楽数論・パズルの題材ともなる。同時に、現代文明に不可欠のインフラ「セキュアな通信」(勝手に書き換えられたり、パスワードを盗まれたりしない)の理論的土台ともなる。
社会通念的な「数学」のイメージ(公式やパターンを覚えて当てはめる)と違い、素数の世界・数論の世界には、未解決問題が今でもいっぱい。時々ウェブフォームなんかに「この通信は強力に暗号化されてるんで安全です」みたいなことが書かれてるが、厳密に言うとほとんど「うそ」。「安全性」は証明されていないどころか、コンセプトは「計算量的な安全性」(=攻撃者に無尽蔵の計算資源・リソースがあれば、原理的に必ずクラックされるが、それには膨大な計算時間が必要・膨大なメモリーが必要・またはその両方)。国家予算レベルでも「十分なリソース」を用意できないだろう、という程度に計算が大変なら(そして未証明の仮説が全て正しく、実装に穴がなく、ソーシャルエンジニアリングの危険もなく、サイドチャネルの心配もなければ)、実用上まぁ一応安全だろう――というのが、正しい解釈だ。
数学上の予想は、未解決でも高確率で正しい(もちろん未解決である以上「実は違った」という可能性を排除できないけど)。だが「実装」以下は、人間のやること。こればかりは、間違いゼロにできない。ましてや「ソーシャルエンジニアリング」は、のんきなエンドユーザーの問題だ…。なんたら詐欺やらアカウント乗っ取りやらが日常茶飯事の世の中で、「あらゆる個人情報を一元管理すれば便利です」「二重・三重の防御があるので、絶対事故は起きません」などと言い張るのは、大うそつきの御用学者といわねばなるまい。
2. そんな話はさておき、曜日が 11 や 13 の世界って、どんなだろうか。現行は日曜~土曜の七つだが、土星の先には天王星があるのだから…
天曜日 Uraday 海曜日 Nepday 冥曜日 Plutday 穀曜日 Cerday
を付け足すと曜日が 11 になる。公式には海王星までで「惑星」のストックが尽きてしまうけど、冥王星と小惑星1番 Ceres を並べるのは妥当な線だろう(後者は農業=穀物の女神)。多分このパラレルワールドでは、「毎週・穀曜日は穀曜市。穀物全品2割引!」などとやっている食料品店があって、シリアルやお米を買う人々で混雑するであろう。もちろん土曜から日曜は休日。月曜から金曜の五日に仕事をするごとに、土・天・海・冥・穀・日曜の六日の週末が待っている。いい世界だっ!
曜日が 13 の世界で、さらに追加されるのは…
義曜日 Pallday 婚曜日 Junoday
こちらのパラレルワールドには「婚曜日に結婚式を挙げたカップルは幸せになれる」という迷信があって、結婚式場は予約でいっぱいになるだろう。11番目・12番目・13番目…の曜日名は、 Ceres に続いて、小惑星1番・2番・3番…にちなむ。「義曜日」は知恵の女神 Pallas Athene。小惑星はいっぱいあるので、それを使うと、曜日名を機械的にどんどん作れる。
けど問題の本質は、曜日の名前のようなさまつなことではなく、要素が素数個の世界が秘める性質。「7 の倍数の違いを無視すると x2 と 2 を等しくできる」という前記の概念は、次のように表現される:
「x2 ≡ 2 (mod 7) は解を持つ」
あるいは:
「mod 7 で 2 は平方剰余」
記号的には:
(2/7) = +1
平方剰余でない場合、平方非剰余(略して非剰余)と呼び、上記のような記号は = −1 とする。そうすると、
あ x2 = 7y + 2
い x2 = 13y + 2
う x2 = 19y + 2
とは、それぞれ mod 7, mod 13, mod 19 で x2 = 2 が解を持つか――言い換えれば、これらのパラレルワールドに √2 という数は存在するか?――という問題だ。
その答えは、次の法則に従う。 3 以上の素数 p が、もし「8 の倍数 ± 1」なら(p = 7, 17, 23, etc.)、答えは Yes で、それ以外なら(p = 3, 5, 11, 13, 19, etc.)、答えは No。この法則を第二補充法則という。よって「あ」は解を持つが(既述)、「い・う」は解を持たない。
一方、
ア x2 = 7y − 2
イ x2 = 13y − 2
ウ x2 = 19y − 2
とは、それぞれ mod 7, mod 13, mod 19 で x2 = −2 が解を持つか――言い換えれば、これらのパラレルワールドに √−2 という数は存在するか?――という問題。
その答えは、次の法則に従う。 3 以上の素数 p が、もし「8 の倍数 + 1」か「8 の倍数 + 3」なら(p = 3, 11, 17, 19, etc.)、答えは Yes で、それ以外なら(p = 5, 7, 13, 23, etc.)、答えは No。これについては、負の第二補充法則と呼ぶことができる。よって「ア・イ」は解を持たないが(7, 13 は「8 の倍数 + 1」でも「8 の倍数 + 3」でもないので)、「ウ」は解を持つ(19は「8 の倍数 +3」だから)。具体的な解を見つける一つの方法は、 y = 1, 2, 3, ···に対して、 19y より 2 小さい数が平方数にならないか?を考えること。一目瞭然ではないにしても y = 2 のとき:
19 × 2 = 38
これより 2 小さい数は、平方数 62 = 36 だっ! つまり 19 の倍数の違い(具体的には 38 の違い)を無視すると:
62 = 36 ≡ −2 (mod 19)
ちなみに、当然ながら (−6)2 も同じ性質を持ち、 −6 ≡ 13 (mod 19) なので x = 13 も解となる。実際 132 = 169 は、 19 の倍数 19 × 9 = 20 × 9 − 9 = 180 − 9 = 171 より 2 小さい。「負の第二補充法則」の予言通り、解が見つかった: mod 19 の世界には、平方すると −2 になる数がある!
以下では、この二つの法則を「新しい」(古典的アプローチと違う)方法で、証明したい。それは、虚数単位 i の平方根を使う――というアバンギャルドな(?)証明法で、しかし決して難解ではない。技術的細部の厳密性にこだわらず、そのエッセンスを見詰めるなら、むしろ古典的な方法より簡潔で明快。
3. 第二補充法則も、その負のバージョンも、見かけは整数の世界の現象。それが複素数 x = √ i を使って透明に理解される――というのは、なんとも幽玄だ。
x は平方されると i になって、 i は平方されると −1 になるのだから、 x は4乗(平方の平方)されると −1 になる:
x4 = −1 つまり x4 + 1 = 0
このような4次方程式を解くには、3次の項の係数(この例では存在しなので 0)の半分を ℓ とし、定数項の平方根(この例では √1 = 1)を m として (x2 + ℓx + m)2 を考えるのが便利:
(x2 + 0x + 1)2 = x4 + 2x2 + 1
この式は、根を求めたい x4 + 1 と比べると 2x2 が過剰なので、それを補正するなら、
x4 + 1 = 0
というのは、
(x2 + 0x + 1)2 − 2x2 = 0 カ
と同じ意味。 2x2 = ((√2)x)2 と見て、恒等式 A2 − B2 = (A + B)(A − B) を使うと、カは、
(x2 + (√2)x + 1)(x2 − (√2)x + 1) = 0 キ
と分解される。キは「丸かっこに入ってる二つのものを掛け算したら積は 0 だ」という意味だが、もしも二つのものが両方とも 0 以外だったら、積が 0 になるわけない。よって、キが成り立つためには「二つのもの」の少なくとも一方は 0 でなければならない:
x2 + (√2)x + 1 = 0 ク
または x2 − (√2)x + 1 = 0 ケ
クあるいはケを解くのは簡単だが、今回は解かずに済まそう。解と係数の関係から、ケの2解の積は 1、つまり2解は互いに逆数: 一つの解を z とするともう一つの解は z−1 だ。解と係数の関係から2解の和は √2 なので:
z + z−1 = √2 コ
4. ある数 d が mod p の平方剰余か非剰余か?を判定する一つの手段は Euler の基準と呼ばれる。それは、
d を (p−1)/2 乗して p で割りなさい。余りが 1 なら平方剰余、そうでなければ非剰余ですよ
というもので、割と簡単に証明可能。差し当たり 2 が平方剰余か否か判定するため、
2(p−1)/2 サ
を考える。 2 = (√2)2 をサに代入すると:
[(√2)2](p−1)/2
= (√2)2⋅(p−1)/2
= (√2)p−1
これはサと全く同じ値で、もしこれを p で割って 1 余れば――言い換えれば、もし、
(√2)p−1 ≡ 1 (mod p) シ
であれば、 2 は mod p の平方剰余。余りが 1 でなければ、非剰余(実はこの判定において、余りが ≡ 1 でない場合には必ず ≡ −1 になるのだが、差し当たりその事実は必要ない)。前回、教科書通りにこれを使ったが、ここでシの両辺を (√2)2 倍、つまり 2 倍しておくと、少し話が簡単になる。すなわち:
(√2)p+1 ≡ 2 (mod p) ス
これはシと本質的に同じで、これが成り立つか否かによって、 2 が mod p の平方剰余か否かが決まるっ!
今、コの両辺の p 乗を考えると:
(√2)p = (z + z−1)p ≡ zp + z−p (mod p) セ
この右端の ≡ は「新入生の夢」と呼ばれる現象で、 p が素数であるために生じる。 z は 4 乗されると −1、つまり 8 乗されると 1 なので zr の値(r: 整数)は、指数 r が 8 増えると元に戻る。この場合、 p は 3 以上の素数なので必ず奇数; 8 周期でループするのだから p を 8 で割った余り r に応じて r = 1, 3, 5, 7 だけを考えればいい。コから、
z1 + z−1 = √2
は明白、周期 8 のループから、 z7 = z−1 そして z−7 = z1 なので、
z7 + z−7 = z−1 + z も = √2
要するに、素数 p が 8 の倍数より 1 大きいか、または 8 の倍数より 7 大きいときには:
zp + z−p = √2 ソ
一方、コの両辺に z4 = −1 を掛けると、
z4(z1 + z−1) = −√2
つまり z5 + z3 = z5 + z−5 = −√2
となる。 z3 + z−3 = z−5 + z+5 も同じ値。すなわち r = 3, 5 のケースは、 r = 1, 7 のケースと比べて、 zr + z−r という和の符号が、逆になる(√2 ではなく −√2 になる)。よって p が 8 の倍数より 3 大きいか、または 8 の倍数より 5 大きいときには、ソは不成立。
結局 3 以上の素数 p は、 8 の倍数より 1 大きいか、または 8 の倍数より 7 大きいとき(そしてそのときに限って)ソを満たす。そのとき、セから:
(√2)p ≡ zp + z−p = √2 (mod p) タ
タの両辺を √2 倍すればスなので、タの関係はスと同値。つまり p が 8 の倍数より 1 大きいか、または 8 の倍数より 7 大きいとき、 2 は mod p の平方剰余となり、それ以外の場合には 2 は平方剰余ではない。「8 の倍数より 7 大きい」(p = 7 や p = 23 など)は「8 の倍数より 1 小さい」と言っても同じこと。つまり、 p を 3 以上の素数とすると、
p が「8k±1型」なら 2 mod p は平方剰余。 p がそれ以外の型なら 2 は非剰余。
前回も本質的に同じことをやったが、より滑らかに、第二補充法則が証明された!
5. 負のバージョンに進む。 −2 が mod p の平方剰余か非剰余かは、
(−2)(p−1)/2 ≡ 1 (mod p) ナ
が成り立つか否かで決まる。第二補充法則(通常バージョン)の証明と同じ手法が使えるとするなら、ナを
(√−2)p−1 ≡ 1 (mod p) ニ
つまり (√−2)p+1 ≡ −2 (mod p) ヌ
の形にすれば良いだろう。
正のバージョンでは (√2)p+1 の √2 を z の式 zp + z−p で表すことが鍵となった。それと平行的に進めるなら、今度は (√−2)p+1 の √−2 を z の式で表したい。もし…… z の具体的な値を考えるなら、実部も虚部も √2 の半分(言い換えると虚数の部分は √−2 の半分)なので、共役解と足し合わせることで実部は 2 倍になり、虚部は消え、結果は √2 になる。同様に、共役解との間でうまく引き算をすれば、今度は虚部が 2 倍になり、実部は消え、結果は √−2 となる。
……けれど具体的な数値を考え、細かく操作するのは面倒なので、別の角度から省力的に考察する。 z と z−1 を2解とする x2 − (√2)x + 1 = 0 という方程式ケについて、仮に2解を(どっちがどっちの解か特定せず)漠然と α, β と呼ぶと、解と係数の関係から:
α + β = √2 αβ = 1
∴ (α − β)2 = (α + β)2 − 4αβ = 2 − 4 = −2
これは α − β が −2 の平方根であることを示している。2解のどっちからどっちを引くと √−2 なのかという技術的問題が生じるが(逆向きに引くと −√−2 になってしまう)、 α − β か β − α か、どちらか一方の引き算が望ましい結果を生じることは確実なので、まぁ、 z − z−1 = √−2 になるように、2解の一方を z として他方を z−1 とした――ということにしておこう。意外と簡単に、足し算を引き算に変えるだけで、 √−2 が z の式になってくれた。
〔参考〕 引き算結果が √−2 = i√2(虚部が正)になる、ということは、正の虚部から負の虚部を引き算したってことだから、共役複素数解のうち、虚部が + のやつを z としたのである、具体的に言うならば。本文は「省力的」でエレガント(?)だが、裏では小心に細かく検算していることは言うまでもない!
z − z−1 = √−2 の両辺の p 乗を考えると、新入生の夢から:
(√−2)p = (z − z−1)p ≡ zp − z−p ネ
p を 8 で割った余りによって r = 1, 3, 5, 7 に分類すると(p = 8k + r)、 r = 1 のときの、
z1 − z−1 = √−2 ノ
は明白だが、 r = 7 にすると、引き算の順序が逆になって符号が反転してしまう:
z7 − z−7 = z−1 − z = −(z − z−1) = −√−2
通常版の第二補充法則では r = 7 は平方剰余を生み出す良い選択だったが、マイナス版では r = 7 は駄目な選択なのだ!
〔補足〕 和 zp + z−p は p ≡ 1 と p ≡ −1 (mod 8) に対して対称的で、どちらも同じ出力を生むが、差 zp − z−p の場合、 p ≡ 1 と p ≡ −1 (mod 8) では「引く順序」が逆になり、符号が入れ替わってしまう。
さて、ノの両辺を z4 = −1 倍すると、
z4(z1 − z−1) = −√−2 つまり z5 − z3 = −√−2
∴ z5 − z−5 = −√−2
となり、 r = 5 も駄目な選択。他方、
z3 − z−3 = z−5 − z5
は、今見た値の −1 倍なので、 r = 3 の場合には zr − z−r = √−2 が成り立つ。
結局 p を 8 で割った余りが 1 か 3 のときに限って、ネの右辺の値は √−2 となり、そのとき:
(√−2)p ≡ zp − z−p = √−2 (mod p)
この両辺を √−2 倍すると…
(√−2)p+1 ≡ −2 (mod p)
…すなわちヌが成立する。
結論として、 3 以上の素数 p を mod として −2 が平方剰余となるのは p が「8k+1型」か「8k+3型」のときに限られ、 p がそれ以外の型なら −2 は平方剰余にならない。負の第二補充法則が証明された!
整数の世界の割り算の余りがどうこう…という問題の核心が、複素数の星座の「星回り」によって決定される。不思議な真相。この手法は第三補充法則などにも応用できるばかりか、工夫すると平方剰余の相互法則そのものの証明にも利用できる。
今回 z の数値をあえて明らかにせず、なるべく具体的数値を細かく扱わない方向で議論を進めた。複素平面上のどこに z があるかという幾何学的イメージは、論理的には必要ないからだ。そうはいっても、具体的イメージがあった方が心理的に安心感があるのも事実…。
z は、幾何学的には単位円の円周上、偏角 45° の位置にある。具体的な実部・虚部の値や、三角関数表現については、前回のメモ参照。
本文の議論は本質的には正しいものの、「無理数や虚数を含む合同式」(本文では何げなく使っている)を正当化するには、厳密には多少の準備が必要。でも大まかな議論の流れさえつかめれば、多くの場合、細部の厳密性を後から補うのは難しくないし、それがこのすてきな証明を完成させることに役立つとなれば、理論的部分に取り組むモチベーションともなるだろう――思ってもみなかった面白い景色に出会えるかもしれない。