Maxima で綴る数学の旅

紙と鉛筆の代わりに、数式処理システムMaxima / Macsyma を使って、数学を楽しみましょう

-数学- 4で割ると1余る素数を2つの平方数の和に分解する方法 - 概説

 

最近この本を買って読んでいました。

探検! 数の密林・数論の迷宮

探検! 数の密林・数論の迷宮

 

p進数、ガロア群、連分数、楕円曲線などの進んだ数学について、教科書には載ってなさそうな話をいくつも説明している、とても面白い本です。結構幅が広いため、興味を持ったところだけを読み進んでいます。

 

その中でも最後の章ではpが4n+1型の素数の時、p=n^2+m^2 (n,mは整数)と2つの平方数に分解できることを、6通りもの方法で証明しています。そのうちの5つは構成的な証明になっており、与えられたpに対してn,mを具体的に求める方法が提示されています。

 

この話題は以前日曜数学者のtsujimotterさんが2つの方法を取り上げて説明していました。

これらの記事で取り上げられている証明も5つの構成的証明に含まれるのですが、上記の他に3つもある、というのが驚きです。そうであればMaximaでこの5つの方法を全てプログラミングしたくなりますよね、、、

ちなみに以下に5つの構成的証明(pからn,mを求める方法)の主要点を紹介します。個別のプログラムは別記事でそれぞれご紹介することにします。

  1. フェルマーの無限降下法を使う方法 tsujimotterさんの(1)の記事に紹介されているのと同じ方法です。
  2. ヤコブスタール和を使う方法 tsujimotterさんの(2)の記事で紹介されているのと同じ方法です。
  3. 二項係数から求める方法 二項係数や階乗を使った具体的な式として求める方法です。ガウスが証明しているそうです。
  4. 互除法を使う方法 pとpから求まるaを初期値としてpとaで互除法を繰り返すだけでn,mが求まる、不思議な方法です。
  5. mod pの指標のヤコビ和から求める方法 mod pの指標群の中で位数が4の指標\( \chi \)についてヤコビ和\( Jacobi\left(\chi , \chi\right) \)を求めるとその実部と虚部がmとnになる、というこれまた不思議な方法です。

プログラムにするとどれも最大でも10行程度でかけてしまいます。1,2はすでにtsujimotterさんの記事でrubyで書かれたプログラムがありますから、この後の記事では3, 4, 5を説明したいと思います。