■[Flash]ピタゴラ・ジュース・メーカー

 いつまで「原始ピタゴラス数」にこだわっているんだよ……と突っ込まれそうだが、爺なりの「ピタゴラ・ジュース・メーカー」を作ってみた。せっかく作ったので公開しておく^^;

※Copyright Hiroshi Yuki 「ピタゴラ・ジュース・メーカー」という言葉は、結城浩さんの命名。前記事「コマ大数学科141講:原始ピタゴラス数(補習)」を参照のこと。

 「m」と「n」には、1~100までの好きな数を指定できる。しかし、「m」と「n」には、偶奇という条件があるので、偶数どうしの組み合わせや、奇数どうしの組み合わせは、許されない。また、「m=10」、「n=5」のような組み合わせは、「m」と「n」の最大公約数が「5」なので、互いに素という条件を満たしていない。

 つまり、原始ピタゴラス数というのは、ピタゴラスの定理を満たす、大元の数(竹内薫センセ談)で、辺(a,b,c)が互いに素である(最大公約数が「1」ということ)。

 また、「m < n」のときは、「a=m^2-n^2」を計算したとき、負の値になるので、条件として「m > n」が必要なんだけど、爺が作成したFlashは、辺「a」に関しては、絶対値をとっている。もちろん、各辺を定数倍した直角三角形は、いくらでも、作れちゃうので、これは、原始ピタゴラス数ではない。

 で、同じ料理を連続して出されても、もうおなかいっぱいだと思うが、「ピタゴラ・ジュース・メーカー」の試作版も公開しちゃう。こちらは、検証のため、「m」と「n」ともに、1~100までの、すべての「原始ピタゴラス数」を表示するものだ。

※Flash8のソース(pytagoras.zip)

原始ピタゴラス数の条件を満たしているかどうかの判断は、各辺の最大公約数(Greatest Common Divisor)が「1」かどうかを調べればいいのだが、Flashには、GCDを求めるコマンドは用意されていない。そこで、小飼弾さんの「404 Blog Not Found : アルゴリズム百選」で紹介していたスクリプトを拝借させていただいた。感謝。

三辺の最大公約数を求めるとき、エクセルなら「=GCD(33,44,55)」とすれば、「11」と求まるが、弾さんのスクリプトは、引数として渡せるのは、2つの数値。この場合は、「gcd(a,gcd(b,c))」と関数を入れ子にすることで解決できる。