PI に時間を

技術研究所の(あ)です。
一昨日は 3/14。そう、円周率(PI)の日です。小学生のときに 3.14 とかおよそ 3 とか習うこの値、小数点以下が繰り返しもなく果てしなく続く、ということは誰でも知っているかと思います。その数字の並びは、規則性もなくランダムです。つまり、0 から 9 のどの数字も、どういう数字の並びも、(長い目で見ると) 均等に出てくる、ということです。

ほんとうに? どんな感じ?
といったあたりを実際に見てみましょう。

円周率の数字の並びのデータ

果てのない円周率の数字の並びは、昔からいろいろな方法で計算されています。大昔は円に内接・外接する多角形の辺の長さから挟み込む形で、近世になってからはさまざまな公式の級数表示 (インドの数学者、ラマヌジャンの公式などが有名ですね) によって、手計算されてきました。1945年にファーガソンという人が、小数点以下 540桁まで計算したそうです。

計算機が登場してからは、もちろん桁数が劇的に増えていきます。
1949年に最初期の計算機の一つ、ENIAC で 2037桁まで計算されたのを始めとして、1958年には 1万桁、1973年には100万桁、1989年には10億桁、そして 2016年現在 22.4兆桁が計算されています
(この辺りの参考文献: Wikipedia の「円周率」「円周率の歴史」)。

こうしためちゃくちゃ多い桁数の計算をどうやるのか、どうやってプログラムを効率化するのか、ということも興味深いのですが、ここではおいておきます。今回は既に計算されたものを使わせていただきます。

「円周率1000000桁表」なんてものが書籍として売られてたりもしますし、ウェブで「円周率 数表」や「pi list」で検索すると電子的なデータが見つかります。これを使って、そこに含まれる数字を見てみましょう。

円周率の数字の出現率を調べる

数字の並びや個数を調べるにはもちろんプログラムを使います。100万桁くらいだったらメモリに読み込んで処理してもよいですが、
10億桁とかになるとそうもいかない (一桁 1byte として約1GB) ので、ファイルを読み込みながら調べることになります。数字の出現数を数えるプログラムの他に数字を一桁ずつ打ち込むとインクリメンタルに最初にその並びが現れる桁数を検索するプログラムを作ったのですが、新しい検索を始める際には一旦ファイルを close して再び open、としました。

さて、それでは10億桁の円周率の数字の並びに現れる 0-9 のそれぞれの数字の数を見てみましょう。ランダムならば、平均的には 1/10 ずつ現れるはずなので、1億個ずつくらいになるはずです。実際は…

数字 個数
0 99,993,942
1 99,997,334
2 100,002,410
3 99,986,912
4 100,011,958
5 99,998,885
6 100,010,387
7 99,996,061
8 100,001,839
9 100,000,273

4桁目で四捨五入すれば全て約1億個になりますね。
充分きれいに揃っています。
では次に、数字の並びに偏りがないか、「0の次に 0-9 それぞれの数字がくる数」を見てみます。

数字 個数
00 10,004,524
01 9,998,250
02 9,999,222
03 10,000,290
04 10,000,613
05 10,002,048
06 9,995,451
07 9,993,703
08 10,000,565
09 9,999,276

これも充分きれいに揃っていますね。
もっと長い列の場合は? とか、一つ飛んだ桁の場合は? とか
いろいろ調べたくなる項目はありますが、
気になる方はご自分で調べてみてください:-)。

円周率の数字の並びの中の特定のパターンを探す

出現率以外には、たとえば「0 がたくさん連続して並ぶところ」があるか、とかが気になりますよね。
ランダムであれば、特定の長さ n の数字の並びは、
平均的には 10^n 桁に一つくらいはあるはずです。
0-9 の数字ならば n=1 なので 10桁に一つくらい、3桁の並びならば 1000桁に一つくらい、
10億 (10^9) 桁あれば、任意の9桁の並びがそこそこの確率で含まれるはずで
(平均 1個なので含まれないものも多い)、
8桁の並びならば平均10個含まれるはずです。
探してみましょう。

円周率の数字の並びに “0” が出てくるのは意外と遅く、32桁目です。
“00” は 307桁目、”000″ は意外と早く 601桁目。以下、次のような感じです。

数字の並び 初めて登場する桁
0 32桁目
00 307桁目
000 601桁目
0000 13,391桁目
00000 17,535桁目
000000 1,699,928桁目
0000000 3,794,573桁目
00000000 172,330,851桁目

0 が 8個も続くところがあるというと不思議な感じですが、
本当にあります。

“9” の並びの場合は、”99″ が 44桁目で初めて出た後、
762桁目からいきなり “999999” と 6つ続くところが現れます。
でも、7つ続くところは 1,722,776桁目まで現れません。
こうしたばらつきも、逆にランダムっぽいですね。

数字の並び 初めて登場する桁
9 5桁目
99 44桁目
999 762桁目
9999 762桁目
99999 762桁目
999999 762桁目
9999999 1,722,776桁目
99999999 36,356,642桁目

他におもしろい並びでは

数字の並び 初めて登場する桁
123456789 523,551,502桁目
987654321 719,323,473桁目
31415926 50,366,472桁目

なんていうところがあります。
西暦+月(2桁)+日(2桁) の並びで 8桁なので、皆さんの誕生日のならびも、
高い確率で10億桁までにあるはずです。たとえば、”20170314″ は 37,074,720桁目にあります。

その他の調べ方

特定の桁まで全て計算する、という方法以外に、
(16進表記で、ですが) 特定の桁の数字を計算で求める方法なんていうのもあるそうです。

円周率の16進数表現100億桁目を求めてみた! ―円周率の世界記録をどのように検証するか―

最初のほうで計算で求めた22兆桁の円周率の数字をどうやって検証するのだろう、
という疑問を持たれた方もいらっしゃるかもしれませんが、
こういう方法もあるんですねー。
不思議な数字の並びの世界、ぜひ皆さんも遊んで体感して確かめてみてください。


SNSでもご購読できます。