くたくたシェルのブログ

気ままに楽しむ燃え殻 (ash) のような人間が自分の頭の舵取りをするために書いています。つぶやくよりは考え、考え過ぎるよりは吐き出す、そんな記録を脳みその外に置きます。

久しぶりの投稿、そして円周率πと誕生日

最後の投稿は2016年6月27日。実に3年と1ヶ月のブランク。病気と親族のごたごたに振り回されてて静養という名のぼーっとした過ごし方だったように思う。

久しぶりに投稿してみようと思ったきっかけは、πの計算方法を調べていく中で興味深い次の記事を見つけたこと。*1

itchyny.hatenablog.com

さて、それではなぜπなのか?

それはPerson of InterestというアメリカのTVドラマシリーズのシーズン1 or 2のどこかのエピソードをみていたときのこと。高校に潜入し教師に扮するハロルド・フィンチが授業の中で「πは無限に続く小数で、その中には全てのもの(数列?)が含まれている」みたいなことを言っていたのを聞いて、「自分の誕生日はπのどのあたりに含まれているのだろう?」と思ったのが事の始まり。 

単純にπの数列をどこかから入手すればよいものを、まずは計算方法をググったあたり、あえて遠回りする不思議な性格がここにも現れたという(苦笑)ググってみると次の記事にある方法が手っ取り早かった。

overpass.dokkoisho.com

これはシェルスクリプト内で使える標準搭載のコマンド、関数電卓の bc を使うというもの。

 計算の精度や所要時間などはさておき(え?)、結果的にほぼ丸々使えた。ひとまず書き留めたシェルスクリプトはこちら。

#!/bin/bash
#SCALE=1000
[ $# -gt 0 ] && SCALE=$1
#printf "%s\n%s\n" "scale=${SCALE}" '4*a(1)'
echo 'scale='${SCALE}'; 4*a(1)' | bc -l | tr -d '\\\n'
echo

三角関数ArcTanを使っている。

誕生日のうち月と日からなる4桁の数字(内緒)であれば10,000桁の中で見つかったんだけど、8桁からなる年月日は10万桁の中にも見つからなかった。計算時間がすでに18時間くらいかかったので、もうこれ以上は言語やアルゴリズムを変えないと無理だろうな〜と思って引き続きググって見つかったうち、興味深かったのが冒頭に貼った1億桁計算したという記事。

すごいね。

そして世の中、さらに上には上がいる。31兆桁とか?! Σ(゚ω゚lll;)

www.bbc.com

そういえば、結局私の誕生日8桁はどこへ…。自分的にはズルなんだけど、どこかに定数πを10万桁以上公開してるサイトはないかなーと探してみたけど、ぱっと見見つからなかった。

これは計算するしかないか…!

*1:この記事の中にあるようなはてなブログソースコードや数式を打ち込むには一体どうしたらよいのだろう…?