今日は3月14日ということで円周率の日です。ここはひとつ円周率をネタに記事を書いてみましょう。
円周率は と無限に続く数ですが,時間と計算のリソースさえあれば理論的にはには第何桁目までも計算することはできます。しかしそのことをもって,我々が円周率をよく分かっていると言ってもいいのでしょうか?
今日はある数の値を任意の精度で求めることが出来るからと言って,その数のことをよく分かっているとは必ずしも言えないというお話しをしましょう。
円周率の世界記録
円周率計算の効率の良い方法として, Chudnovskyの公式というものが知られています。Chudnovskyはアメリカに住んでいた数学者の兄弟で, 1989年に次の公式を発表しました。
http://www.pnas.org/content/86/21/8178.full.pdf
$$
\cfrac{1}{\pi} = \frac{\sqrt{10005}}{4270934400}
{\displaystyle \sum_{n=0}^{\infty}}
{\normalsize (-1)}^n
\frac{(6n)!}{(n!)^3(3n)!}
\frac{(13591409+545140134n)}{640320^{3n}}
$$
この最後の項の分母が指数関数になっていることから, この和は速く収束します。 の場合ですでに と小数点第13桁まで が求まっています。
実際にパソコンで計算したい方は下記pdfを参考にどうぞ。
https://bellard.org/pi/pi2700e9/pipcrecord.pdf
2016年にはChudnovskyの公式を利用して, 円周率が桁まで計算されています。
http://www.numberworld.org/digits/Pi/
なぜこんな半端な桁数かというと, で, の1兆(trillion)倍の桁ということらしいです。
また,円周率を16進数表示した場合の任意の桁を高速に計算する方法もあるようです。
円周率は理論的には任意の精度で計算することが出来ます。
一方で,円周率が無理数,さらには超越数であることはよく知られていますが,この事実はいくら円周率の値を精密に計算しても証明することはできません。「ある数を任意の精度で計算することが出来る」≠「その数のことをよく分かっている」なのです。
フェルマーの最終定理 (フェルマー・ワイルズの定理)
3 以上の自然数 について となる自然数の組 は存在しないというフェルマーの最終定理は,17世紀フランスの数学者ピエール・ド・フェルマー(本職は弁護士)が本の余白に「この定理に関して、私は真に驚くべき証明を見つけたが、この余白はそれを書くには狭すぎる」とメモを残してから約360年後,1995年にアンドリュー・ワイルズによって完全に証明されました。
フェルマーの最終定理 - Wikipedia
この式 を利用して,ある実数 を定義してみましょう。
f_k=
\begin{cases}
1 & (k=2^a3^b5^c7^n,~ a,b,c,n\in \mathbb{N},~n\ge 3,~ a^n+b^n=c^n)\\
0 & \mbox{(その他の場合)}
\end{cases}
$$
とし, とする。
つまり,小数点表示すると であり,各桁は か です。素因数分解の一意性により, は正しく定義されています (well-defined)。
の任意の桁は計算可能です。実際,の小数点第 桁目は次のように計算できます。
が 以外の素因子を持っているか, で割り切れなければ,小数点第 桁目 は です。 が だけを素因子に持っており のときは が成り立っているかどうかをチェックして,成立していれば小数点第 桁目は ,成立していなければ です。
ではこの は実際はどういう値でしょうか?定義をよく見れば, であることと,フェルマーの最終定理が成り立つことが同値であることが分かるでしょう。
つまり は であることの証明に360年かかった数なのです(ワイルズの証明が出る前は「 であることを証明できれば100万ドルもらえる数」でした)。
任意の精度で値を計算できることと,その数字がよく分かっているという事には差があることが分かっていただけたと思います。実数の無理性や超越性もいくら精密に値を計算しても分からない類の性質ですが,もっと単純に思える「0である」という性質でさえ難しい話なのです。
元ネタ
この話の元ネタは決定可能集合と半決定可能集合の違いです。
決定可能性 - Wikipedia
「決定可能性の問題」をフェルマーの最終定理という「有名な難問」に置き換えて,集合の所属問題を実数が かどうかという問題に帰着させてみました。
フェルマーの最終定理は結局証明され という事が分かったのでまだましな方です。現実はもっと厳しくて「任意の桁が計算可能な数が かどうかを判定するアルゴリズム」は存在しません。