フェルマーの小定理の証明とオイラーの定理
整数問題で合同式を使う際、フェルマーの小定理を知っていると応用の幅が広がる。
フェルマーの小定理は整数aとpにおいて、次の式が成り立つ。
aとpは互いに素で、pは素数。
「pが素数じゃない場合はどうなるの?」
「合成数の場合はオイラーの定理というものがある。でも、今はフェルマーの小定理が先だ。問題に入る前に定理の証明をしておこう」
「私、証明苦手なんだけど……」
「証明と言っても専門的な知識は必要ない。今から説明するのは英語版のWikipediaを参考にしたものだ」
まず任意のアルファベットをa個選び、横にp個並べる。
a=2、p=3の場合、並べ方は
PPP、PQQ、QPQ、QPP、QPP、PQP、PPQ、QQQ
同じ文字で作られたPPPとQQQを除いた残り
PQQ、QPQ、QQP、QPP、PQP、PPQ
「今度は残った6個の文字列を2つのグループに分ける」
PQQとQPQとQQPをグループ1
PQPとPPQとQPPをグループ2
「このとき、グルーブ1にはPが3個、Qが6個。グルーブ2はPが6個、Qが3個ある。2つのグループにはPとQの個数が、3もしくは3の倍数なので、
実は残った文字列をグループに分けるとき、ちょっとしたコツがある。
「次はa=4、p=5として、文字をP、Q、R、Sとする」
文字列の長さは5だから、並べ方は
一つの文字で作られた文字列PPPPP、QQQQQ、RRRRR、SSSSSを除いた
「さすがに全部は挙げられないから、一部だけ例を出す。Wikipediaではネックレスで解説されていたが、ここでは都合上、頂点だけの五角形で説明する」
「ネックレス?」
「ああ。手元に紙とペンがあれば、実際に図を書いて、各頂点に文字を当てはめてみてほしい」
俺がそう言うと、愛華は俺の勉強机にルーズリーフとシャープペンを置き、辺がない五角形を描いた。
P
Q P
R S
「PQRSPの5つで作られた五角形を、右回転させる(左でもよい)」
P P
Q P → P S
R S Q R
「すると、各頂点が一つずれてPPQRSになった」
「右端の文字を左端に移動させると考えてもいいよね」
「そう言ってもいい」
同じ要領で進めていくと、PQRSP→PPQRS→SPPQR→RSPPQ→QRSPP
「QRSPPの右端のPを左側に移動させてPQRSP……あ、最初と同じになった」
「つまり、5つの文字列PQRSP、PPQRS、SPPQR、RSPPQ、QRSPPは同じものと見なすことができる」
これを1つのグループにすると、Pは10個。Q、R、Sは5個ずつある。
「感覚を掴んでもらうために、ほかのグループもいくつか挙げておこう」
(PPQPQ、QPPQP、PQPPQ、QPQPP、PQPQP)Pが15個でQが10個。
(RQSSR、RRQSS、SRRQS、SSRRQ、QSSRR)Qが5個でRとSがそれぞれ10個。
「結局、どのグループも異なる文字の個数が、5または5の倍数になっている。よって、
これを一般化してa、pで考えると、文字列の個数はaだから、文字列の並べ方は
AAA……AAA(Aがp個並んでいる)のように、一つの文字で構成された文字列はa個あるから、異なる文字で構成された文字列の個数は、
残った
「合同式で表すと
合同式の割り算は、aとpが互いに素、またはpが素数のときだけ可能。よって、両辺をaで割って
「一般的には二項定理を用いた数学的帰納法か、整数の性質を利用した背理法で証明するんだが、分かりやすさを考慮した」
実際、英語版のWikipediaには『This is perhaps the simplest known proof, requiring the least mathematical background(これはおそらく最も単純な知られている証明であり、必要な数学の予備知識は最小限である)』と記されている。
愛華はノートを見ながら顎に手を当てる。
「……完全には理解できなかったけど、雰囲気は掴めた」
「最初はそんなもんさ。じゃあ、実際に問題を解いてみよう」
「これは簡単、
「
「待った」
直接
「なるほど。余りをマイナスで考えた方が計算するときに楽だね」
「考え方次第で労力をだいぶ減らせる。もう1問解いてみよう」
aが2以上の整数のとき、
「この問題は
「そういうときは6を素因数分解して、(mod 2)と(mod 3)でそれぞれ考えればいい。
23と6は互いに素なので割り算可能。
フェルマーの小定理より、
22=1・22より、
22=2・11より、
「式の形は違うが、
つまり、
「
「ねぇ、法が素数じゃないときはオイラーの定理っていうのがあるんだよね。それは使えないの?」
「使えるけど、すべてのaに対して示すことはできない」
オイラーの定理はnを正の整数として、整数aとnが互いに素のとき、
「φはギリシャ文字で『ファイ』と読む。φ(n)はn以下に、互いに素である正の整数が何個あるかを示している」
「6だったら、1と5だからφ(6)=2で合ってる?」
「合ってる。この場合、
ちなみにnが素数の場合、n以下に共通の約数はないので、互いに素の正の整数はn-1個。
つまり、
φ(n)の値は10の倍数だと、φ(10)=4、φ(20)=8、φ(30)=8、φ(40)=16、φ(50)=20、φ(60)=16、φ(70)=24、φ(80)=32、φ(90)=24、φ(100)=40
「φ(100)=40を頭に入れておけば、7の1000乗を100で割った余りを知りたいとき、
「計算で求めたい場合は?」
「オイラーのφ関数というのを使えば、φ(n)の値を求められる」
ただ、オイラーのφ関数にはΠ(積を表す記号)が出てくるので敷居がやや高くなる。まあ、フェルマーの小定理だけでも整数問題には充分対応できるし、オイラーの定理を使う機会はあまりないかもしれない。
あとがき
本文中の『This is perhaps the simplest known proof, requiring the least mathematical background』の日本語訳は、作者がGoogle翻訳で訳した文を、自然な日本語になるようにしたものです。そのため、訳の正確さは保証できません。予めご了承ください。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます