2013年10月13日日曜日

円周率を分数で近似する

円周率を分数で近似するとしたらどんな分数になるか、

答えは何通りでもあるが、例えば
355/113 は、3.141592 まで一致する
80143857/25510582 は、3.14159265358979 まで一致する

で求め方だか、精度の良い円周率を既に知っているとして、連分数を求める方法で計算できる。

既に円周率を知っていることが、インチキといえばインチキである。

具体的方法は
精度の良い円周率を
PI = 3.141592653589793
とする。

PI = 3 + 0.141592653589793
  = 3 + 1 / 7.0625...
  = 3 + 1 / (7 + 0.0625...)
  = 3 + 1 / (7 +  1 /(15.9965...))
  = 3 + 1 / (7 +  1 /(15 + 0.9965...))
  = 3 + 1 / (7 +  1 /(15 + (1/ 1.0034...)))
  = 3 + 1 / (7 +  1 /(15 + (1/ (1 + 0.0034...))))
  = 3 + 1 / (7 +  1 /(15 + (1/ (1 + (1/292.634...)))))

で、
3 + 1 /(7 + 1/ (15 + 1))
= 355/113
である。

念のため参考まで
primeFactors(355) = 5 * 71
primeFactors(113) = 113
gcd(355, 113) = 1

この連分数計算を適当な回数繰り返すと
3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, ..
と数が出て来る。
ここで14まで出てきた所で、連分数を打ち切り、手計算すると
80143857/25510582
が出て来る。

念のため参考まで
primeFactors(80143857) = pow(3, 3) * 2968291
primeFactors(25510582) = 2 * 31 * 479 * 859
gcd(80143857,25510582) = 1


 自由な電卓