ページの最終校正年月日 :

以下で解説していることは

On the Table of Plimpton 322 (PDF) (奈良教育大学紀要、平成 24 年)

の内容を日本語で整理しなおし、改良したものです。 具体的には、元の論文ではPlimpton 322 の「表の構成法」と、「表の目的」が混在した書き方と なっていたのを「表の構成法」のみを先にまとめて、その後に「表の目的」を書いています。 このようにまとめ直すと古代バビロニアにおけるピタゴラス数の求め方が明白になり、極めて単純になります。 端的に言えば古代バビロニアでは現代と異なり、無限に多くのピタゴラス数を 生成できず、ごく限られたピタゴラス数しか生成できなかった。

プリントン 322 の表が謎になった最大の原因は古代バビロニア人は
d : c = d' : c'
のような比例の関係式が成立するかどうかを判定できず、小数表示して
d/c = d'/c'
が成立するかどうかを判定できただけです。しかも、これが厳密に一致するかどうかを 判定するには、共に桁数が有限の 60 進小数の場合のみだったのです。 だから、とても特殊なピタゴラス数の場合しか互いに同値であるか否かを判定できなかった。

使用している数学は高度なものではありませんが、 柔軟な思考力が必要と思います。(高校レベルの数学で十分と思う。)

2 節と 3 節の内容はノイゲバウアーの本からの抜粋で、 この本は翻訳されていないので、その意味で参考になるかもしれません。 もっとも、ここで引用している箇所は彼の本の 10 頁程度に相当する部分で、 全体像ではありません。

以下の議論でプリンプトン 322 の表の謎がすべて解消したと思っています。 必要であったことはノイゲバウアーが書いている通りに「実計算」により ピタゴラス数を列挙してみればよかっただけです。

プリンプトン 322 の表に関して
  1. 逆数の標準表
  2. 古代バビロニアでのピタゴラス数
  3. 同値でないピタゴラス数の選び方
  4. できる限り多くのピタゴラス数を作る
  5. (p, q) = (125, 54) の求め方
  6. プリンプトンの表は何のための表か ?
  7. 参考:現代的なピタゴラス数の求め方。
1. 序

プリンプトン 322 とは紀元前 1800 年頃の古代バビロニアの刻板です。 一般的なことに関しては日本語の Wikipedia の 解説をご覧ください。


プリンプトン 322

この刻版は楔形文字で書かれた 60 進数の数表でアラビア数字の表記では次のようになります。 (列見出し I, II, III, IV は便宜的につけたもの。)

表 1

この表に関しては

O. Neugebauer, The Exact Science in Antiquity, Dover Edition
(ノイゲバウアー、古代における厳密サイエンス)

で詳しく調べられ、色々なことが知られていますが、謎が随分残っています。例えば、この表は左半分が欠けており そこに何が書かれてあったのかも謎となっています。

表 1 の数値は 60 進数で、例えば (1, 10) は 10 進表示では 1×60 + 10 を意味します。 但し、古代バビロニアでは小数点がないので (1, 10) は 1 + 10×60-1 の意味にもなるので注意が必要です。なお、数値の間のカンマは見やすくするために便宜的に 入れてあるだけで、元の刻版ではスペースがあるだけです。 更に古代バビロニアでは 0 がありません。そのため (1,0,3) の表示は、 1 と 3 の間のスペースが通常より大きいだけで、 中間の桁に 0 が幾つもあるような場合にはとても計算間違いをしやすくなります。

表 1 の II 欄の数値を b とし、III 欄の数値を d とし、 c を次で定めます。

d2 = b2 + c2

そうすると、c が整数となり (b, c, d) がピタゴラス数となり、表の I 欄の値は (d/c)2 に等しくなります。IV 欄はただの行番号です。


図 1

図 1 のようにして、角 θ を選ぶと、

45°>θ>30°

となり、

謎 1
θ はプリンプトン 322 の表で、45° にきわめて近い所から 開始し、30° にきわめて近い所で終了する。
謎 2
(d/c), (d/c)2 はほぼ直線的に減少する。
謎 3
失われてしまった表の左半分には何が書かれていたか ?
2. 逆数の標準表

先にも述べたように、古代バビロニアには小数点がないのですが、 ここでは便宜上セミコロンで小数点を表すことにします。 つまり (1; 2, 3) は 1 + 2×60-1 + 3×60-2 を 表わすものとします。

数 n の逆数とは

n n = 1

を満たす数 n とする。 自然数 n に対して、n の逆数の 60 進表示が有限桁で表示できる時に n を正則数と呼ぶ。 そうすると n が自然数のときに

n が正則数 ⇔ n = 2α 3β 5γ と書ける。

古代バビロニア人は逆数の標準表と呼ばれるものを持っていた。

表 2

標準表とは n (= 2α3β5γ) ≦81 となる正則数の逆数の表のことです。

注意
上で与えた正則数の定義では 1 が入ります。 逆数の標準表には 1 がないのですが、60 = (1,0) が入り、60 は 1 と同一視される。

古代バビロニア人は逆数の標準表で割り算を実行しており、 正則数でない数に関しては例えば次のような近似計算をしているそうです。

1/13 = 7/91 ≒ 7/90

標準表に載っていない正則数を小さい方から列挙すると

90 = (1, 30), 96 = (1, 36), 100 = (1, 40), 108 = (1, 48),
120 = (2,0), 125 = (2, 5), 128 = (2, 8), 135 = (2, 15),
144 = (2, 44), 150 = (2, 24), 160 = (2, 40), 162 = (2, 42)

このような正則数の逆数は標準表からは直ちにわかるわけではないが、 次のようにすると逆数がすぐわかる。


......

古代バビロニア人がどのようにしていたのか、ノイゲバウアーは はっきり述べていませんが、次のように書いています。

"The limitation of the "standard"table of reciprocals which we reproduced above did not mean that one could not transgress them at will." (p 34)
(我々が再現した逆数の標準表の限界は、この限界を意図しても越えることができないことを 意味しているのではない。)

としているので試行錯誤して気が付いた方法です。 標準表に属していなくても、余り大きくない正則数には使えそうです。 しかし、もしもこのような比較的統一的な方法が使用されていたのであれば、ノイゲバウアーが言及しているように思えるので、 古代バビロニアではその場限りの方法を使用した可能性があります。 それに上の方法では比例の知識が必要かもしれません。

3. 古代バビロニアでのピタゴラス数

現代では

d2 = b2 + c2

の正の整数解を求める問題は整数論の入門書などに解説 (第 8 節を参照) があり、 簡単に解くことができます。 整数解を求めるには本質的に異なる解を求めることが必要となり、 現代では b, c, d に共通因子がない解 (原始解) を求めます。 しかし、この方法が古代バビロニアで採用されたとは思えません。 古代バビロニアでは素因子分解が知られていなかったと思われるためです。

ノイゲバウアーはまず、古代バビロニアの二次方程式の解き方を 議論してから、プリンプトン 322 のピタゴラス数の求め方を議論しています。 ともかく古代バビロニアではピタゴラス数の求め方と二次方程式が関連していた。 ここでは直接関係する箇所を引用します。最初に ノイゲバウアーは 2 つの一次式から開始します:

d = x + y
b = x - y

このとき

d2 = b2 + 4xy

が成立する。従って 4xy がもしも平方数であれば、 上の等式からピタゴラス数が得られることになる。 つまり任意の正の整数 p, q (p>q) に対して、

d = p2 + q2,    b = p2 - q2,    c = 2pq

と置けば、(b, c, d) はピタゴラス数となる。(x = p2, y = q2)

注意
この形は、現代的な方法による結果とほぼ同じである。 しかし、
  1. 以上の方法ではすべての正の整数解がこの形で与えられることがわからない。
  2. 現代的な方法では原始解 (即ち b, c, d に共通因子がない解) に限定するため、 上の式に更に次の条件が付く。
    gcd(p, q) = 1, p と q の偶奇が異なる。
  3. 以上の方法で、できる限り多くの本質的に異なるピタゴラス数を求めるためには、 与えられた 3 つ組が互いに同値でない条件を別途考える必要がある。 これは古代バビロニアでも当然考えられたはずである。

ノイゲバウアーは更に、

(*)

の表示を与えています。但し n は n の逆数とします。 この事実から、p, q を正則数に選んであれば d/c (従って (d/c)2) は有限桁の 60 進表示を持っていることになります。 これによりノイゲバウアーはプリンプトン 322 の第 I 欄 ((d/c)2) の計算法の説明をしているのです。 古代バビロニアでは割り算

p/q = pq   (q は標準表に登場する正則数)
の表があり、 これを使用すれば上の d/c は簡単に計算できるためです。(式 (*) は次節で違う意味を持つことになる。)

ノイゲバウアーは更にプリンプトン 322 の表に登場する p, q は正則数で、 ほとんど逆数の標準表に登場するものとしています。 そこで、

の関係式から p, q を求めてみることにします。 11 番目の (45) と (1, 15) の組からは整数が得られません。 そこで各々を 60 倍した値で計算しました。 (古代バビロニアでは小数点がなかったことを思い出してください。 この組み合わせは (3,4,5) の組み合わせに対応するものです。) プリンプトン 322 の表で第 I 欄を省いて、p, q のカラムを付けると 次のようになります。

表 3

表を見てみると、確かに p, q (p>q) は正則数になり、 表 3 の第 4 行目のみに逆数の標準表に現れない正則数 p = 125 (>81) が 登場しており、ノイゲバウアーの書いている通りです。

b, d の値は大きいが p, q の値が小さいこと、に注意します。 b, d を直接扱うよりは、p, q を扱う方がやさしいので、元々のプリントン 322 の表には p, q の欄があったことが確実です。

3.1. プリンプトン 322 では原始解を選んでいない

p, q を決定するときに第 11 行目で扱いを変えました (60 倍した)。 この箇所では b = 45×60, d = 75×60 で c = 60×60 となります。 (3, 4, 5) は一番簡単なピタゴラス数ですが、古代バビロニア人は (3, 4, 5) の表示の代わりに (45×60, 60×60, 75×60) を選んでいる。

15 行目の (p, q) = (9, 5) に関しては p と q が共に奇数なのでこれは 現代的な意味での原始解ではありません。事情を確認するために少し計算をします。 (p, q) = (9, 5) に対して

d = p2 + q2 = 106
c = 2pq = 90
b = p2 - q2 = 56

従って対応する原始解は (53, 45, 28) となります。そこで

53 = p2 + q2, 45 = p2 - q2, 28 = 2 pq

から p, q を決めると (p, q) = (7, 2) となります。つまり、原始解を求めようとすると、 正則でない 7 が出てくるのです。だから古代バビロニア人は原始解を求めようとした はずがないのです。

以上から、プリンプトン 322 では原始解 (b, c, d に共通因子が無い解) を 選んでいるわけではないことがわかります。 しかし、11 行目と 15 行目を除けばは原始解になっています。何故このようなことが起きるかに 関しては後で説明をします。

4. 同値でないピタゴラス数の選び方

2 つのピタゴラス数 (b, c, d) と (b', c', d') が前節のように与えられているとする:

d = p2 + q2, c = 2pq,  b = p2 - q2  (p, q  正則数)
d' = p'2 + q'2, c = 2p'q',  b' = p'2 - q'2  (p',q' 正則数)

このとき d/c = d'/c' であれば 2 つのピタゴラス数は同値であると呼ぶことにします。 本来の同値の定義は d/c = d'/c' or d'/b' ですが、古代バビロニア人にとって、 d/c の計算は可能ですが b が正則数でないので d/b の計算が困難で、しかも有限桁の 60 進小数 で表すことができないので現代的な定義を採用できません。

式 (*) より

x = p/q, y = d/c であれば
y = (x + 1/x)/2

p>q であるから x>1 となり、この時 y は x に関して単調増大である。 すなわち 1<x1<x2 の時に

yi = (xi + 1/xi)/2  (i = 1, 2)

と定めると y1<y2 となる。

注意:これはグラフからもわかりますが、次の式変形でも確かめることができます。
2(y2 - y1) = (x2 - 1/x2) - (x1 - 1/x1)
= (x2 - x1) + (x1 - x2)/(x1x)
= (x2 - x1)(1 - 1/(x1x2))>0

従って

ピタゴラス数 (b, c, d) が同値でないものを探すには p/q の値が異なっているものを探せばよい。

更に、次が同値となる。

  1. ピタゴラス数を (d/c)2 の大きさの順に並べること。
  2. ピタゴラス数を (d/c) = y の大きさの順に並べること。
  3. ピタゴラス数を (p/q) = x の大きさの順に並べること。

上の 3 つの作業で、1 番最後の作業が最も単純です。p, q の桁数は d, c の桁数よりはるかに小さいためです。だから古代バビロニアでは最後の方法で ピタゴラス数を並び替えた。

以上の観点から、 プリンプトン 322 の表は p/q の値が異なるようなピタゴラス数を選び、p/q の大きさの 順に並べていると思われる。だから無論プリンプトン 322 には (p, q) と p/q の カラムがあったことが明白です。

プリンプトン 322 の表では p, q はすべて正則数 (2α3β5γ) なので分数 p/q を簡約しても正則数の分数である。 このため p/q の値が異なるように選ぶためには現代的には gcd(p, q) = 1 となるような組み合わせを 考えるだけでよい。但し gcd(p, q) は p, q の最大公約数である。

つまり、最大公約数という概念を使用すれば古代バビロニア人がしていた計算を 単純に理解できる。しかし最大公約数という概念がなくても、p/q を有限桁の 60 進小数で表示すれば、一応 2 つの数の比例が等しいか否かを決定できる。 しかも、q が逆数の標準表に登場する正則数の場合には、 p/q の表がすでにあるため、実際の計算はほとんど必要がない。

5. できる限り多くのピタゴラス数を作る

現代の方法ではピタゴラス数を無限に多く構成できます。 (例えば p, q として相異なる素数を選べばよい。  しかし、前節までの方法 (古代バビロニアの方法と想定されるもの) ではピタゴラス数を無限に構成することは困難になります。 古代バビロニアでは逆数の表 (逆数の標準表) を作成し、 更に逆数の標準表を基にして p/q (q が標準表の正則数の場合) も表にしています。従って、古代バビロニアで前節までに述べた方法によって 互いに同値でないピタゴラス数を求めるには、p, q が共に逆数の標準表に載っている正則数の場合に簡単に確認できるだけで、 それ以外に関してはとても難しくなります。以上を前提にして、 古代バビロニアの方法と想定される方法で、できる限り多くのピタゴラス数を作ってみることにする。 実際には (p, q) の組を決め、それを順に並べることを考えます。

プリンプトン 322 の表では一つの組み合わせ (即ち (p, q) = (125, 54)) を除いて、 すべて p, q は逆数の標準表にあるものです。 標準表に掲載されている正則数は全部で 30 個しかない。 そのため、標準表に掲載されている正則数から、 (p, q) の組み合わせを構成しても、可能性は 30×29 個しかなく、 p, q は正則数 (2α3β5γ) であるから、 共通因子を持つ可能性が極めて大きく、p/q の値が異なるものはずっと少なくなるはずです。 この組み合わせの一部分がプリンプトン 322 の表に掲載されているものと一致するはずです。 どうなっているのかを計算機プログラムで確かめてみることにしよう。 次の手順で計算をする。 (以下、プログラムのソースコードやエクセルに関する記述は手順にエラーがないことを 強調するためのもので、計算機プログラムに詳しくない人は無視して下さい。)

計算手順
S を逆数の標準表に現れる正則数の全体とする。 S に 1 を加える。
  1. p, q∈S に対して、p>q で gcd(p, q) = 1 であれば、p, q と x=p/q を出力。
    (p, q の動かし方は小さい方から順に探す。 具体的には p を小さい方から順番に動かし、1 つの p に対して q を小さい方から p - 1 まで動かす。)
  2. x=p/q の大きさ順に並べなおす。
注意
  1. S に 1 を加えておかないと gcd(p, q) = 1 の条件だけで探すと、 ピタゴラス数がすべては求まらない可能性がある為です。
    (具体的には (p, q) = (2, 1) の組み合わせが脱落してしまう。 gcd で探さずに、p/q の値がすでに登場している場合にリストに加えない方法 (古代バビロニアで実行したと思われる方法) では、 (p, q) = (2, 1) に対応する (p, q) = (4, 2) が発見される。)
  2. 古代バビロニアのように一々 p/q の値を割り算の表から探して重複を除く方法を適用しても、 小さい方から探せば p/q は必ず簡約分数になります。
    (∵ p, q∈S に対して p>q とする。 p, q に共通因子があるとし、(p', q') を共通因子で割った組とすると p', q'∈S、p'>q' が成立し、 (p', q') は (p, q) より先に登場する。)
  3. 大きさの順に並べなおすには、ソート・プログラムを書く必要があるが、 これはバグが出やすいので避けることにし、単にカンマで分割した表 (csv ファイル) を作成し、 これをエクセルで読み取ってソートすることにする。

Java で作成したプログラムは次のようにきわめて単純である。

Calc.java

結果は 128 行から成る表が得られ、 エクセルでソートした結果の 86 行目から 107 行目を表示すると次のようになる。

注意
  1. 60 進表示にすれば p/q は有限桁の 60 進小数になりますが、煩わしくなるので 10 進表示にします。だから p/q の値は四捨五入したものです。
  2. 小数点以下の表示桁数は Java のバージョンによって変動があります。
表 4:計算機出力の結果
(86 行目から 107 行目まで)

表 4 の第 1 欄は行番号、次に p, q, p/q の欄が続き、 最後の欄は p/q の値の差 (直前の行の値との差) です。 「p/q の値の差」は一般的に小さく、所々大きくなっている 箇所があり、この箇所の背景色を灰色にしています。 p/q の大きさの順に並べるのに先にも述べたようにエクセルを 使用し、 p/q の値の差を求めるのにもエクセルを使用しています。 表全体は 128 行あり、上で表示しているのは 86 行目から 107 行目です。

(p, q) に関しては、表 3 の第 4 行目 (標準表以外の正則数が登場している唯一つの行) を除いて考えれば、 すべて表 4 の「第 89 行目から第 102 行目」に完全に一致 することがわかる。

5. 1. 計算結果からわかること、その 1

実は本当に一致しているのではなく、プリントン 322 の表では 98 行目の (p, q) = (2, 1) の代わりに (p, q) = (60, 30) を書いている。これ以外は p/q が簡約分数になるものを選んでいる。 計算手順で考えた S として 1 を含むものを考えましたが、 プリンプトン 322 の作者は S に 1 を含めていないようです。 S に 1 が含まれていれば、小さい方から順に探していけば一番最初に簡約分数に対応するものが見つかります。 もしも S に 1 がないと (2, 1) に対応するものでは (4, 2) が最初に求められる組み合わせです。 古代バビロニア人にとって、これよりは (60, 30) の表示の方がよかったようです。 逆数の標準表に含まれるものに固執したのかもしれませんが、 少なくとも分数の簡約という考えは古代バビロニア人になかったことがわかります。 これは 60 進数に小数点が無いことの副作用であるかも知れません。

一応これで プリンプトン 322 の表の第 11 行目が原始解ではないことの説明になります。 また第 11 行目と第 15 行目を除いては原始解になっていることの説明にもなります。 (第 15 行目が原始解になっていないことはすでに説明済み。) それと同時にここで採用した方法で 「gcd(p, q) = 1 ではなく、p/q の数値から重複を除いた方法」 がプリントン 322 で採用された方法であることがほぼ確実になりました。

5. 2. 計算結果からわかること、その 2

表 3 の第 4 行目の (p, q) = (125, 54) の組は p/q の差が大きい場所に挿入されていることが わかり、これは表 4 を作成した後で第 91 行目と第 92 行目の間に挿入したことが想定される。 第 88 行目と第 89 行目の間も p/q の差が大きく、 プリンプトン 322 の表がここから始まっているのはごく当然のように見える。 第103 行目と第 104 行目の間の p/q の差が大きいが、 プリンプトン 322 の表が第 103 行目で終了せずに、その手前の第 102 行目で 終了しているのは少し不自然である。

問題点の整理
  1. 表 3 の第 4 行目の (p, q) = (125, 54) の組は p/q の差が大きい場所に挿入されている。
  2. プリンプトン 322 の表は本来、第 89 行目から第 103 行目までを入れるべきなのに、 表の製作者が 第 103 行目を入れ忘れたのではないか ?

そこで少し別の角度から考えてみよう。角 θ をこの頁の最初で定義したものとする。 (すなわち θ は (b, c, d) の定める直角三角形で斜辺 d と辺 c の成す角度。) この時

45°>θ>30°
2>d/c>2/√3
1 + √2> p/q > √3

となることが確かめられ、この条件を満たす行は表 4 の 80 行目から 103 行目であることがエクセルで確認できる。 つまり、45°と 30° を意味あるものと想定すれば 162 行目よりは 163 行目の方が意味がある。

例えば、次のように考えるとこの奇妙な事実を説明できます。

プリントン 322 の製作過程
  1. プリントン 322 が製作された時代よりも、古い時代に (あるいは遠方で)、 ピタゴラス数をできる限り多く作る試みがあった。 その結果、表 4 ができた。
  2. 驚くことに 89 行目から 103 行目まで、91 行目と 92 行目の間を除き、 p/q の値の差が非常に小さくなっていることに気が付いた。
  3. この結果、この表が別の用途に使えることに気が付き、 91 行目と 92 行目の間に標準表にない正則数の組を探し、 (p, q) = (125, 54) の組を見つけた。
  4. 88 行目と 89 行目の間、及び 103 行目と 104 行目の間に同様な試みをしたがこれは失敗であった。
  5. しかし、この結果は 45° と 30° の理由から非常に覚えやすく、 広く世に伝わった。この話を伝え聞いたプリンプトンの作者が自分でもしてみようとした。 このとき、103 行目の (p, q) = (16, 9) を入れ忘れた。

いずれにせよ、このページの最初に述べた「謎 1」は偶然の産物です。 また「謎 2」は (p, q) = (124, 54) の組を挿入した結果、p/q がほぼ均等に 並ぶことになったことによるものです。だから、これも偶然の産物です。

なお、失われているプリンプトン 322 の表の左半分には (p, q)、p/q, d/c のカラムが並んでいるはずです。 これはプリンプトン 322 の表が第一義的にはピタゴラス数の列挙を目的としているためです。 これが「謎 3」の解答です。

6. (p, q) = (125, 54) の求め方

(p, q) = (125, 54) はどのようにして求めることができるかを考えます。 (p, q) は表 4 の 91 行目 ((p, q) = (75, 32)) と 92 行目 ((p, q) = (9, 4)) の間にないといけないので 次の条件を満たす必要があります。

9/4<p/q<75/32
4/9>q/p>32/75
(32/75)p<q<(4/9)p

この条件を満たす正則数 p, q を探すのですが、標準表にある正則数ではこのようなものがないことがすでに分かっています。 標準表にない正則数は小さい方から順に次のようになります。

90, 96, 100, 108, 120, 125, 128, 135, 144, 150,...

以上の p に対して、(32/75)p と (4/9)p を計算すると次のようになります。 (数値は小数点以下 3 桁を切り落としています。)

p (32/75)p (4/9)p
9038.4 40
9640.9642.66
10042.6644.44
10846.0848
12051.2 53.33
12553.3355.55

一目瞭然なことに (32/75)p と (4/9)p の間隔が狭く、この間には正則数 (2α3β5γ の形の数) が p = 125 になるまでなく p = 125 の時に始めて q = 54 が見つかります。

表 4 の 88 行目と 89 行目の間と 103 行目 104 行目の広い間隙に関しては、 どうなっているのでしょうか ? 計算してみることにします。

プリンプトン 322 の表の前後の広い間隔

以上と同じことを 88 行目と 89 行目の間、及び 103 行目と 104 行目の間に同じことを 適用してみます。

88 行目と 89 行目の間では次のような計算になる。

12/5<p/q<5/2
5/12>q/p>2/5
(2/5)p<q<(5/12)p
p (2/5)p (5/12)p
9036 37.5
9638.4 40
10040 41.66
10843.2 45
12048 50
12550 52.08
12851.2 53.33
13554 56.25
14457.6 60
15060 62.5

ここまでは q が見つかりませんでした。p, q を大きくすれば p/q や q/p の計算が 大変になるので、とりあえずここで中断します。

103 行目と 104 行目の間では次のような計算になる。

27/16<p/q<16/9
16/27>q/p>9/16
(9/16)p<q<(16/27)p
p (9/16)p (16/27)p
9050.6253.33
9654 56.88
10056.2559.25
10860.7564
12067.5 71.11
12570.3174.07

見てわかるように p = 125, q = 72 (= (1, 12)) が正則数となります。 しかし、もしも q が一桁の 60 進数のみを探したのであれば、これは見つかりません。 p を大きくすれば q も大きくなります。従って

次の各々の条件を満たす正則数 p, q で q が一桁の 60 進数であるものは存在しない。
  1. 12/5<p/q<5/2
  2. 27/16<p/q<16/9

プリンプトン 322 の表では q はすべて一桁の 60 進数なので、これで一応説明がつくことになり、 表の前後の広い間隔は埋めることができないことがわかりました。

7. プリンプトンの表は何のための表か ?

プリンプトンの表の角度 (45°、30°) が唯の偶然の一致でしかないので、 プリンプトンの表が三角関数に関連したものでないことは明らかです。 関連したグラフを描いてみます。

4 節により、x = p/q, y = d/c と置けば、 y = (x + 1/x)/2 が成立し、 表 3 から決まる p/q の列は区間 [√3, 1 + √2] の 細分を与えていることになります。しかも、この (p, q) の中にわざわざ (125, 54) を加えているので、 細分の幅を一定以上に小さくしたいことがわかります。 従って、これは y = (x +1/x)/2 の式で y の値が与えられた時に x の値を線形補間によって 決定する意図を感じます。(ここの線形補間とはグラフを折れ線と思い、 y の値から比例によって x の値を決める方法です。 古代バビロニア人が線形補間を多用していたことがノイゲバウアーの本に載っている。)

y = f(x) において、線形補間により y の値から x の値を決める時に、 区間をなるべく細分すれば、直線が y = f(x) のグラフに近づき x の値が正確になる。

だから、プリンプトン 322 の表は二次方程式の根を求めるためのものである可能性が大きくなります。 しかし y は区間 [2/√3, √2] の中にないといけない。(厳密には (p, q) = (50, 27) 及び (p, q) = (12, 5) が定める区間。) 適用できる y に制限がありますが、一応これでかなり正確な解を求められるはずです。

プリンプトン 322 には (d/c)2 のカラムもありますが、これは y がある数の平方根になっている場合に 別途、式を考えた結果と思われます。

8. 参考:現代的なピタゴラス数の求め方。

参考までに現代的な方法で

x2 + y2 = z2
(A)

の正の整数解 (x, y, z) を全て求める良く知られた方法を説明します。 これを考察するには x, y, z に共通な因子が無い場合 (原始解) を考えれば十分です。 この場合に

補題 1
x, y のいずれか一方が偶数で、他方が奇数である。
証明: (1) x, y が共に偶数とすると、z も偶数になり、x, y, z がすべて 2 で割り切れることになり矛盾。
(2) x, y が共に奇数とする。この時 z は偶数となる。ところが
(2m + 1)2 = 4 m2 + 4 m + 1
なので奇数の 2 乗は 4 で割ると 1 余る。式 (A) の左辺を 4 で割ると 2 余る。 一方、式 (A) の右辺は偶数の 2 乗であるから 4 で割り切れる。これは矛盾。
(1), (2) より x, y の一方は偶数で、他方は奇数となる。

そこで x を偶数、y を奇数とする。この時、 z は奇数で、 式 (A) は次のように変形できる。

(x/2)2 = ((z + y)/2)((z - y)/2)
(B)

しかも、この時 x/2, (z + y)/2, (z - y)/2 は全て整数である。

補題 2
(z + y)/2 と (z - y)/2 は互いに素である。
証明: 素数 r が (z + y)/2 と (z - y)/2 をどちらも割り切るとする。 この時 z = (z + y)/2 + (z - y)/2, y = (z + y)/2 - (z - y)/2 のどちらも r で割り切れ、 また式 (A) より r は x も割り切る。これは (x, y, z) に共通の因子が無いことに矛盾する。 従って (z + y)/2 と (z - y)/2 は互いに素である。

よって、式 (B) より

(z + y)/2 = p2,   (z - y)/2 = q2,    gcd(p, q) = 1

と書ける。以上より (A) の原始解はすべて次で与えられる。

z = p2 + q2,  y = p2 - q2,  x = 2pq,
gcd(p, q) = 1,  p, q の偶奇が異なる。

gcd(p, q) = 1 の条件から p, q の素因子が z、y を割り切らないことはすぐわかるが、2 が z, y を割り切らないように、 「p, q の偶奇が異なる」の条件を付けておかないといけない。この条件の下では、 x のみが偶数で、z, y が奇数となる。

もしも「p, q の偶奇が異なる」の条件を付けずに、p, q が共に奇数の場合も考えると、 z, y が共に偶数となり、(z/2, y/2, x/2) がピタゴラス数となり、これが原始解となる。 この時 x/2 が奇数の辺となり、y/2 が偶数の辺となる (p2≡q2≡1 mod 4)。