ワイ、円周率を割り切った模様 → 円周率=7825万6779 分の 2億4585万922
こんにちは。
3.14から始まる円周率はどこまでも続く男のロマン・・・そんな風に考えていた時期が、ワイにもありました。
「円周率が10桁で割り切れた」とかいう嘘記事が虚構新聞から出回ったりしたこともありました。
しかしさっきプログラムを作っていろいろ計算していたところ、円周率が割り切れてしまったので報告させてください。
そもそもは、円周率を分数で表現する手法を最近知り興味を持ったのがきっかけです。例えば
とかです。7分の22が円周率のそこそこの近似値(3桁まで正しい)になっています。
次に有名なのが、
らしいです。この113分の355はなんと7桁まで正しい近似になってます。3桁の整数2つ覚えるだけで、円周率7桁分の精度が得られるとは何ともお得な数です。
ここで疑問が湧きました。
この調子で分母の整数値を上げていったらどうなるのだろうか・・・?
本来数学でのやりかただと、ここで「連分数」などを持ち出すようなのですが、幸い?自分はそのあたりは忘れてしまったソフト屋なので、力技で結論だけだす以下のようなプログラムを作りました。言語は JavaScript で、実行には Node.js を使いました。
<pi.js>
分母を1から1ずつ上げていき、分子は既知の円周率 Math.PI から逆算してます(ちょっとずるいですが・・)。
実行結果は以下の通りです。
$ node pi.js 3/1 = 3, ERR=0.14159265358979312 13/4 = 3.25, ERR=0.10840734641020688 16/5 = 3.2, ERR=0.05840734641020706 19/6 = 3.1666666666666665, ERR=0.025074013076873403 22/7 = 3.142857142857143, ERR=0.0012644892673496777 179/57 = 3.1403508771929824, ERR=0.0012417763968106676 201/64 = 3.140625, ERR=0.000967653589793116 223/71 = 3.140845070422535, ERR=0.0007475831672580924 245/78 = 3.141025641025641, ERR=0.0005670125641521473 267/85 = 3.1411764705882352, ERR=0.00041618300155787935 289/92 = 3.141304347826087, ERR=0.0002883057637061981 311/99 = 3.1414141414141414, ERR=0.00017851217565167943 333/106 = 3.141509433962264, ERR=0.0000832196275291075 355/113 = 3.1415929203539825, ERR=2.667641894049666e-7 52163/16604 = 3.141592387376536, ERR=2.662132572162079e-7 52518/16717 = 3.1415923909792425, ERR=2.6261055063869776e-7 52873/16830 = 3.141592394533571, ERR=2.5905622225153024e-7 53228/16943 = 3.1415923980404887, ERR=2.555493043843171e-7 53583/17056 = 3.141592401500938, ERR=2.5208885512384427e-7 53938/17169 = 3.1415924049158366, ERR=2.4867395653771496e-7 : (中略) : 5419351/1725033 = 3.1415926535898153, ERR=2.220446049250313e-14 42208400/13435351 = 3.1415926535897722, ERR=2.0872192862952943e-14 47627751/15160384 = 3.141592653589777, ERR=1.5987211554602254e-14 53047102/16885417 = 3.141592653589781, ERR=1.199040866595169e-14 58466453/18610450 = 3.1415926535897842, ERR=8.881784197001252e-15 63885804/20335483 = 3.141592653589787, ERR=6.217248937900877e-15 69305155/22060516 = 3.141592653589789, ERR=3.9968028886505635e-15 74724506/23785549 = 3.141592653589791, ERR=2.220446049250313e-15 80143857/25510582 = 3.1415926535897927, ERR=4.440892098500626e-16 245850922/78256779 = 3.141592653589793, ERR=0 DONE with i=78256779 $
なんと、分母が7825万6779になったところで誤差が0になって割り切れてしまいました。やばい。
つまり
であることが確かめられてしまいました。
少なくとも JavaScript さんは
円周率 = 7825万6779 分の 2億4585万922
だと判定しました。
どこか計算間違っているんでしょうかね・・・?
だれか詳しい人教えてください。