2016年3月10日木曜日

160310

Ruby


Machin-like formula(1)

http://integers.hatenablog.com/entry/2016/03/07/035543
を見て、高野喜久雄の公式を確認したくなった。

def f(x, y)
  (x + y).to_r / (1 - x * y)
end

def g(x, n)
  return x if n == 1
  f(g(x, n - 1), x)
end

# F. C. M. Stormer
p a = g(1r / 57, 44)
p b = g(1r / 239, 7)
p c = g(1r / 682, 12)
p d = g(1r / 12943, 24)
p f(f(f(a, b), -c), d) == 1

# Kikuo Takano 
p a = g(1r / 49, 12)
p b = g(1r / 57, 32)
p c = g(1r / 239, 5)
p d = g(1r / 110443, 12)
p f(f(f(a, b), -c), d) == 1

出力結果
(30359526048167280559520407768157953896794006114356905827076473489496336/31193467533294004448510308353153627192530554289520296713480255630772527)
(163063756196879/5565902965084799)
(178152634449794601186648817308264/10123970409723506716802717698789673)
(221133709940734332763150066927029167927624324678877208263900879066152608081636777984094972736/119255430545806006606282910952047504082979247479672264764763875351796384053904855358653436772673)
true
(727502164381792800/2911427801860312799)
(1258437261608003827417436088483220732017476031172224/2001248528287782648828504442719364153615241358955393)
(4078367999/194918686801)
(5591411000625584861155181978021667341047545829855840824/51461016894072118290173182441350333304888274623920577734407)
true

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。