![見出し画像](https://assets.st-note.com/production/uploads/images/152342007/rectangle_large_type_2_6223472c637984c45771fea21b740681.jpeg?width=1200)
第15話 法律家のたしなみ 後編
「フェルマー? フェルマーって、たしか・・・。」
「昨日も名前出て来たえ。“フェルマーの小定理”ってな。」
吉栄光比売が、聞き覚えのある定理の名前を出す。大翔は思わず、数学徒Xからの絵馬を見た。そこに書かれている“$${2^{2024}}$$を$${13}$$でわったあまり”を求める問題で、昨日お世話になった定理だ。大翔が考えた返事の問題はあまりを求めるものではないので、フェルマーは大翔の中では“終わった人”扱いになっていた。またしてもその名前に出くわすことになるとは・・・。
「ひょっとして・・・。フェルマーってけっこうすごい人です?」
「なかなかにやるヤツや。微分積分論や確率論の草分けやし、なんと言っても整数論で有名やな。“フェルマーの大定理”って知らんかえ?」
数学の守護神からすれば、“なかなかにやるヤツ”程度なのかもしれないが、そういう言われ方をするとイマイチすごさが伝わってこない。なにかの草分けであるからにはきっとすごいのだろうが・・・。
「“小”だけじゃなくて、“大”もあるんすか?」
「むしろ、“大定理”の方が有名や。フェルマーが手持ちの数学書に走り書きした、整数に関する予想があるんやけど、これが長いこと証明されへんでな。証明されたのはつい最近。平成7年に英吉利のアンドリュー・ワイルズが・・・。て、なんえ? どないした?」(※参考文献[1])
大翔と陽菜は、けげんそうに顔を見合わせている。
「“つい最近”って言われても・・・。平成7年て、私らまだ生まれてません・・・。」
「え?!」
「俺ら、平成18年生まれっすよ? 10年以上、差ぁ空いてますって。」
「なんと・・・まぁ・・・。」
吉栄光比売が卒倒しそうになる。
「いやいやいや・・・。俺らの親世代ならともかく、なんで神が白目むくんすか?」
仮にも八百万の神の一柱である。江戸時代のことを克明に覚えていることからしても、最低でも200歳前後だろう。そんな神からすれば、大翔たちも世界最高齢のお年寄りも大差なさそうに思えるが。
「・・・まあ、ええわ。ともかく、その予想は彼の死後、延宝7年に世に出された。フェルマー自身は『証明した』って言うてたんやけど、もしそれがホンマなら、300年以上時代を先取りしてたことになるな。」
陽菜が大翔にこっそりと話しかけた。
「なあ。“延宝7年”って、西暦何年?」
「いや、俺もそこまで覚えてないって・・・。」
彼はスマホで検索をかけた。
「ええっと・・・、1679年やな。江戸時代の前半か。」(※参考文献[2])
独り言のように言ってから、大翔は女神のちょっとした一言に引っかかった。
「『ホンマなら』ってどういうことっすか? ウソの可能性があるんすか?」
「彼自身は証明を残してへんからな。定理自体は正しくても、彼がそれを証明した、いうんは間違いかウソかもしれん。その辺はどちらかと言うと歴史物語の範疇やさかい、わらわにもことの真偽はわからへん。」
「証明残してへんのに、名前は残ってるんすか? なんか、ずっこいわぁ・・・。」
「言うてやるな。予想を立てるだけでも大したもんや。もちろん、それが正しそうに見えへん限りは、誰にも相手にされへんが。それにフェルマーに関して言えば、そもそも本職の数学者やあらへん。」
「違うんですか?」
「本職は法律家兼政治家やな。」
「また、だいぶ予想外なトコ来たな。」
「数学の研究は、余暇に趣味でやってたらしいわ。」
「酔狂な話っすね。」
「まあな。それで、歴史に名を残す発見をたくさんしてんにゃから、何をか言わんや、やな。」
「で、そのフェルマーの・・・アルゴリズム(?)ってなんですか?」
陽菜が遠慮がちに聞く。
「ああ、そやそや。忘れるところやった。」
吉栄光比売が手をかざすと、ふたたびケサランパサランがほぼ正方形にならんだ。
![](https://assets.st-note.com/img/1725081332250-zUAIRrUQbd.png?width=1200)
「陽菜はここから直接長方形にならべかえようとしてたけど、フェルマーのアルゴリズムの場合、ここに何匹か追加して、むりやり正方形を作るところから始める。」
そこで、吉栄光比売は指を2本くわえ、「ピーっ」と音を鳴らした。すると、ケサランパサランと似た姿の黒い毛玉が大量に現れ、隊列に加わった。
![](https://assets.st-note.com/img/1725081677536-g6QXuwbO6r.png?width=1200)
「いや、あの、先生・・・。」
「なんえ?」
「この黒いヤツらはいったい・・・? まさか、マックr・・・。」
「黒子や。」
「さいですか・・・。」
ついに本物が出て来たかと思ったが、別物のようだ。普段の様子を見ている限り、白いヤツも立派な黒子のように思えるが。
吉栄光比売が説明を続ける。
「黒子を増やしたせいで、全体の数は増えてしまってる。そやから、ここからすこしずつ、形を変えながら数を減らしていくねん。具体的にはこうする。」
![](https://assets.st-note.com/img/1725083260050-sbWElhxiDG.png?width=1200)
「えっと・・・。$${1}$$行減らして$${1}$$列増やしただけ・・・?」
「そう。これで、すこしやけど数は減った。同じように、$${1}$$行減らして$${1}$$列増やすをくり返して数をどんどん減らしていく。」
「そうすると、黒子ちゃんだけキレイにゼロにできるんですか?」
「運がよけりゃそうなるが、この数についてはそうはならん。」
そう言って、吉栄光比売がふたたび手をかざした。すると、白黒の碁石のような毛玉たちの長方形が、みるみる細くなっていく。ある程度細くなったところで、白いヤツが何匹か隊列から外れた。吉栄光比売が手を下げ、動きを止める。
![](https://assets.st-note.com/img/1725085299597-dDH3a8tA95.png?width=1200)
「ここまでの操作が$${170}$$回。ここで初めて、最初の数より小さくなったから、次は行と列を両方増やす。」
![](https://assets.st-note.com/img/1725087548339-T1eBWEbwcv.png?width=1200)
「そうすると最初の数より大きくなるさかい、次からはまた$${1}$$行減らして$${1}$$列増やすをくり返す。ぴったり長方形に収まるまでこれをひたすら続けるんがフェルマーのアルゴリズムや。」
「・・・・・・。」
2人は顔を見合わせた。
「なんか、さっきの陽菜のヤツとあんま変わらんような・・・。これで計算が速よなるんです?」
「ほとんど一緒や。」
「一緒なんかい!!」
「この調子でやっていくと、キレイに長方形になるまでに$${900}$$回の操作が必要になる。」
「むしろ多い?!」
さっきの陽菜のやり方ではたしか$${400}$$回かそこらだったはずだ。
「さっきは$${2}$$行ずつ動かして行ったから$${432}$$回で済んだが、$${1}$$行ずつで行くと$${863}$$回かかる。大した違いやあらへんよ。」
これには、さすがの陽菜も不満そうな顔をした。
「ほとんど変わらへんのやったら、私のやり方でもええんと違うんですか? すくなくとも、あっちのんがわかりやすいと思うんですけど・・・。」
たしかに、増やしたり減らしたりをくり返すよりは、長方形になるまでならべかえ続ける方が素直なやり方ではある。
「陽菜はたし算・ひき算と、わり算はどっちが得意や?」
吉栄光比売がだしぬけに聞いて来た。
「へ? そりゃ・・・、どっちも苦手ですけど・・・。」
「あえて選ぶとしたら、や。」
「それなら、たし算・ひき算かなぁ・・・。」
「ん。こんぴゅーたーにとってもそれは一緒でな。四則演算の中でもわり算は一番時間がかかる。あんたのやり方は、基本的にはひたすらわり算をくり返すのと一緒や。せやし、こんぴゅーたーであれをやると、けっこう時間がかかるんよ。」
「フェルマーのヤツは違うんですか?」
「フェルマーのアルゴリズムはたし算・ひき算のくり返しだけや。$${1}$$行減らしたり$${1}$$列増やしたりばっかりやったやろ? 似たようなことをやってるように見えて、実はもっと簡単な計算におきかえてんねん。大きい数の素因数分解をするときに、特にこの違いが効いてくる。」
「へええ・・・。」
「ちゅうことは、その道のプロ(?)ってみんなこのやり方で素因数分解しはるんです?」
「いいや。普通使わへん。」
「使わんのかいっ。」
「よう考えてみ? たとえば極端な話、調べる数が素数やったらどうなる?」
「? んーっと・・・。」
陽菜がおずおずと手を上げた。
「素数やったら長方形にならべられへんから、一直線にならぶまで終わりません。」
「せやな。最初に陽菜が予想してた通り、今回の$${432652837}$$はおおよそ同じ大きさの素数$${2}$$つの積やさかい、このやり方で比較的早う分解できるが、そうでなかったらむしろヒマかかるやり方や。実際問題、対象の数がどんな因数を持ってるかはわからへんのやから、そんな博打じみたことはせえへんのが普通やな。」
「えええ? じゃあ、どんな方法使うんすか?」
「対象の数の大きさに応じてやり方を変えるんが普通やが、ものすごく大きい数、たとえば$${10^{10}}$$とかそれ以上の大きさの数を分解するときは、フェルマーのアルゴリズムをもうすこし拡張したやり方でやるんが主流や。その辺まで来ると、かなりややこしい話にはなるがな。」(※参考文献[3])
「その方法使うと早くなるんですか?」
「基本的にはな。ただ、お主の叔父殿が言う通り、大きな数字を短時間で確実に素因数分解する方法を人間どもは知らん。せやさかい、RSA暗号が有力な暗号たりえてるんや。」
「なんか・・・。思った以上の難問を出してもうたかもなぁ・・・。」
問題作成者の大翔が苦笑いする。
「ホンマ、意地悪。さすがに怒らはるんちゃう?」
「まあ、そこは大丈夫やろ。$${100}$$ケタのわり算の問題出してくるぐらいやし、この手の計算は好きやろ。気にせんでええ。」
吉栄光比売がフォローくれる。だがこの女神、そこはかとなくサディスティックなところがある。はたして言っていることを真に受けていいのだろうか?
「まぁ、向こうが答えてくるまでにだいぶ時間はあるやろ。その間に、RSA暗号の解き方でも勉強してみなはれ。なんやったら、助け舟出すわ。」
To Be Continued…
※参考文献
[1]「図解する整数論」 MARTIN H. WEISSMAN 著、安福悠 訳 マルゼン出版 P95
[2]「岩波 数学辞典 第3版」 日本数学会編集 岩波書店 P346
[3]「素因数分解と素数判定」 デヴィッド・M・ブレッソード 著、玉井浩 訳 SiB access P52, 55
この記事が気に入ったらサポートをしてみませんか?