ページの最終校正年月日 :
以下で解説していることは
On the Table of Plimpton 322 (PDF) (奈良教育大学紀要、平成 24 年)
の内容を日本語で整理しなおし、改良したものです。 具体的には、元の論文ではPlimpton 322 の「表の構成法」と、「表の目的」が混在した書き方と なっていたのを「表の構成法」のみを先にまとめて、その後に「表の目的」を書いています。 このようにまとめ直すと古代バビロニアにおけるピタゴラス数の求め方が明白になり、極めて単純になります。 端的に言えば古代バビロニアでは現代と異なり、無限に多くのピタゴラス数を 生成できず、ごく限られたピタゴラス数しか生成できなかった。
使用している数学は高度なものではありませんが、 柔軟な思考力が必要と思います。(高校レベルの数学で十分と思う。)
2 節と 3 節の内容はノイゲバウアーの本からの抜粋で、 この本は翻訳されていないので、その意味で参考になるかもしれません。 もっとも、ここで引用している箇所は彼の本の 10 頁程度に相当する部分で、 全体像ではありません。
以下の議論でプリンプトン 322 の表の謎がすべて解消したと思っています。 必要であったことはノイゲバウアーが書いている通りに「実計算」により ピタゴラス数を列挙してみればよかっただけです。
プリンプトン 322 とは紀元前 1800 年頃の古代バビロニアの刻板です。 一般的なことに関しては日本語の Wikipedia の 解説をご覧ください。
この刻版は楔形文字で書かれた 60 進数の数表でアラビア数字の表記では次のようになります。 (列見出し I, II, III, IV は便宜的につけたもの。)
この表に関しては
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 を次で定めます。そうすると、c が整数となり (b, c, d) がピタゴラス数となり、表の I 欄の値は (d/c)2 に等しくなります。IV 欄はただの行番号です。
図 1 のようにして、角 θ を選ぶと、
となり、
先にも述べたように、古代バビロニアには小数点がないのですが、 ここでは便宜上セミコロンで小数点を表すことにします。 つまり (1; 2, 3) は 1 + 2×60-1 + 3×60-2 を 表わすものとします。
数 n の逆数とは
を満たす数 n とする。 自然数 n に対して、n の逆数の 60 進表示が有限桁で表示できる時に n を正則数と呼ぶ。 そうすると n が自然数のときに
古代バビロニア人は逆数の標準表と呼ばれるものを持っていた。
標準表とは n (= 2α3β5γ) ≦81 となる正則数の逆数の表のことです。
古代バビロニア人は逆数の標準表で割り算を実行しており、 正則数でない数に関しては例えば次のような近似計算をしているそうです。
標準表に載っていない正則数を小さい方から列挙すると
このような正則数の逆数は標準表からは直ちにわかるわけではないが、 次のようにすると逆数がすぐわかる。
古代バビロニア人がどのようにしていたのか、ノイゲバウアーは はっきり述べていませんが、次のように書いています。
としているので試行錯誤して気が付いた方法です。 標準表に属していなくても、余り大きくない正則数には使えそうです。 しかし、もしもこのような比較的統一的な方法が使用されていたのであれば、ノイゲバウアーが言及しているように思えるので、 古代バビロニアではその場限りの方法を使用した可能性があります。 それに上の方法では比例の知識が必要かもしれません。
現代では
の正の整数解を求める問題は整数論の入門書などに解説 (第 8 節を参照) があり、 簡単に解くことができます。 整数解を求めるには本質的に異なる解を求めることが必要となり、 現代では b, c, d に共通因子がない解 (原始解) を求めます。 しかし、この方法が古代バビロニアで採用されたとは思えません。 古代バビロニアでは素因子分解が知られていなかったと思われるためです。
ノイゲバウアーはまず、古代バビロニアの二次方程式の解き方を 議論してから、プリンプトン 322 のピタゴラス数の求め方を議論しています。 ともかく古代バビロニアではピタゴラス数の求め方と二次方程式が関連していた。 ここでは直接関係する箇所を引用します。最初に ノイゲバウアーは 2 つの一次式から開始します:
このとき
が成立する。従って 4xy がもしも平方数であれば、 上の等式からピタゴラス数が得られることになる。 つまり任意の正の整数 p, q (p>q) に対して、
と置けば、(b, c, d) はピタゴラス数となる。(x = p2, y = q2)
ノイゲバウアーは更に、
|
(*) |
の表示を与えています。但し n は n の逆数とします。 この事実から、p, q を正則数に選んであれば d/c (従って (d/c)2) は有限桁の 60 進表示を持っていることになります。 これによりノイゲバウアーはプリンプトン 322 の第 I 欄 ((d/c)2) の計算法の説明をしているのです。 古代バビロニアでは割り算
ノイゲバウアーは更にプリンプトン 322 の表に登場する p, q は正則数で、 ほとんど逆数の標準表に登場するものとしています。 そこで、
の関係式から p, q を求めてみることにします。 11 番目の (45) と (1, 15) の組からは整数が得られません。 そこで各々を 60 倍した値で計算しました。 (古代バビロニアでは小数点がなかったことを思い出してください。 この組み合わせは (3,4,5) の組み合わせに対応するものです。) プリンプトン 322 の表で第 I 欄を省いて、p, q のカラムを付けると 次のようになります。
表を見てみると、確かに p, q (p>q) は正則数になり、 表 3 の第 4 行目のみに逆数の標準表に現れない正則数 p = 125 (>81) が 登場しており、ノイゲバウアーの書いている通りです。
b, d の値は大きいが p, q の値が小さいこと、に注意します。 b, d を直接扱うよりは、p, q を扱う方がやさしいので、元々のプリントン 322 の表には p, q の欄があったことが確実です。
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) となります。そこで
から p, q を決めると (p, q) = (7, 2) となります。つまり、原始解を求めようとすると、 正則でない 7 が出てくるのです。だから古代バビロニア人は原始解を求めようとした はずがないのです。
以上から、プリンプトン 322 では原始解 (b, c, d に共通因子が無い解) を 選んでいるわけではないことがわかります。 しかし、11 行目と 15 行目を除けばは原始解になっています。何故このようなことが起きるかに 関しては後で説明をします。
2 つのピタゴラス数 (b, c, d) と (b', c', d') が前節のように与えられているとする:
このとき d/c = d'/c' であれば 2 つのピタゴラス数は同値であると呼ぶことにします。 本来の同値の定義は d/c = d'/c' or d'/b' ですが、古代バビロニア人にとって、 d/c の計算は可能ですが b が正則数でないので d/b の計算が困難で、しかも有限桁の 60 進小数 で表すことができないので現代的な定義を採用できません。
式 (*) より
p>q であるから x>1 となり、この時 y は x に関して単調増大である。 すなわち 1<x1<x2 の時に
と定めると y1<y2 となる。
2(y2 - y1) | = | (x2 - 1/x2) - (x1 - 1/x1) |
= | (x2 - x1) + (x1 - x2)/(x1x | |
= | (x2 - x1)(1 - 1/(x1x2))>0 |
従って
更に、次が同値となる。
上の 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 の表がすでにあるため、実際の計算はほとんど必要がない。
現代の方法ではピタゴラス数を無限に多く構成できます。 (例えば 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 の表に掲載されているものと一致するはずです。 どうなっているのかを計算機プログラムで確かめてみることにしよう。 次の手順で計算をする。 (以下、プログラムのソースコードやエクセルに関する記述は手順にエラーがないことを 強調するためのもので、計算機プログラムに詳しくない人は無視して下さい。)
Java で作成したプログラムは次のようにきわめて単純である。
結果は 128 行から成る表が得られ、 エクセルでソートした結果の 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 行目」に完全に一致 することがわかる。
実は本当に一致しているのではなく、プリントン 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 で採用された方法であることがほぼ確実になりました。
表 3 の第 4 行目の (p, q) = (125, 54) の組は p/q の差が大きい場所に挿入されていることが わかり、これは表 4 を作成した後で第 91 行目と第 92 行目の間に挿入したことが想定される。 第 88 行目と第 89 行目の間も p/q の差が大きく、 プリンプトン 322 の表がここから始まっているのはごく当然のように見える。 第103 行目と第 104 行目の間の p/q の差が大きいが、 プリンプトン 322 の表が第 103 行目で終了せずに、その手前の第 102 行目で 終了しているのは少し不自然である。
そこで少し別の角度から考えてみよう。角 θ をこの頁の最初で定義したものとする。 (すなわち θ は (b, c, d) の定める直角三角形で斜辺 d と辺 c の成す角度。) この時
45°>θ>30° | |
⇔ | √2>d/c>2/√3 |
⇔ | 1 + √2> p/q > √3 |
となることが確かめられ、この条件を満たす行は表 4 の 80 行目から 103 行目であることがエクセルで確認できる。 つまり、45°と 30° を意味あるものと想定すれば 162 行目よりは 163 行目の方が意味がある。
例えば、次のように考えるとこの奇妙な事実を説明できます。
いずれにせよ、このページの最初に述べた「謎 1」は偶然の産物です。 また「謎 2」は (p, q) = (124, 54) の組を挿入した結果、p/q がほぼ均等に 並ぶことになったことによるものです。だから、これも偶然の産物です。
なお、失われているプリンプトン 322 の表の左半分には (p, q)、p/q, d/c のカラムが並んでいるはずです。 これはプリンプトン 322 の表が第一義的にはピタゴラス数の列挙を目的としているためです。 これが「謎 3」の解答です。
(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 を探すのですが、標準表にある正則数ではこのようなものがないことがすでに分かっています。 標準表にない正則数は小さい方から順に次のようになります。
以上の p に対して、(32/75)p と (4/9)p を計算すると次のようになります。 (数値は小数点以下 3 桁を切り落としています。)
p | (32/75)p | (4/9)p |
90 | 38.4 | 40 |
96 | 40.96 | 42.66 |
100 | 42.66 | 44.44 |
108 | 46.08 | 48 |
120 | 51.2 | 53.33 |
125 | 53.33 | 55.55 |
一目瞭然なことに (32/75)p と (4/9)p の間隔が狭く、この間には正則数 (2α3β5γ の形の数) が p = 125 になるまでなく p = 125 の時に始めて q = 54 が見つかります。
表 4 の 88 行目と 89 行目の間と 103 行目 104 行目の広い間隙に関しては、 どうなっているのでしょうか ? 計算してみることにします。
以上と同じことを 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 |
90 | 36 | 37.5 |
96 | 38.4 | 40 |
100 | 40 | 41.66 |
108 | 43.2 | 45 |
120 | 48 | 50 |
125 | 50 | 52.08 |
128 | 51.2 | 53.33 |
135 | 54 | 56.25 |
144 | 57.6 | 60 |
150 | 60 | 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 |
90 | 50.62 | 53.33 |
96 | 54 | 56.88 |
100 | 56.25 | 59.25 |
108 | 60.75 | 64 |
120 | 67.5 | 71.11 |
125 | 70.31 | 74.07 |
見てわかるように p = 125, q = 72 (= (1, 12)) が正則数となります。 しかし、もしも q が一桁の 60 進数のみを探したのであれば、これは見つかりません。 p を大きくすれば q も大きくなります。従って
プリンプトン 322 の表では q はすべて一桁の 60 進数なので、これで一応説明がつくことになり、 表の前後の広い間隔は埋めることができないことがわかりました。
プリンプトンの表の角度 (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 がある数の平方根になっている場合に 別途、式を考えた結果と思われます。
参考までに現代的な方法で
| (A) |
の正の整数解 (x, y, z) を全て求める良く知られた方法を説明します。 これを考察するには x, y, z に共通な因子が無い場合 (原始解) を考えれば十分です。 この場合に
そこで x を偶数、y を奇数とする。この時、 z は奇数で、 式 (A) は次のように変形できる。
| (B) |
しかも、この時 x/2, (z + y)/2, (z - y)/2 は全て整数である。
よって、式 (B) より
と書ける。以上より (A) の原始解はすべて次で与えられる。
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)。