2021年9月19日日曜日

210919

Ruby


π を分数で近似(4)

π = 4/(1 + 1^2/(3 + 2^2/(5 + 3^2/(7 + ...
を利用して、近似してみた。

def A(k, m, n)
  a, b = k, m
  ary = [k]
  (1..n).each{|i|
    a, b = b, (2 * i + 1) * b + i ** 2 * a
    ary << a
  }
  ary
end

n = 20
# A054765
p ary0 = A(0, 1, n)
# A012244
p ary1 = A(1, 1, n)
p (0..n).map{|i| 4 * ary0[i] / ary1[i].to_r}

出力結果
[0, 1, 3, 19, 160, 1744, 23184, 364176, 6598656, 135484416, 3108695040, 78831037440, 2189265960960, 66083318415360, 2154235544616960, 75425161203302400, 2822882994841190400, 112463980097804697600, 4752052488932268441600, 212264271642182654361600, 9993797542549672427520000]
[1, 1, 4, 24, 204, 2220, 29520, 463680, 8401680, 172504080, 3958113600, 100370793600, 2787459998400, 84139894238400, 2742857884166400, 96034297911552000, 3594206259195552000, 143193586818810528000, 6050501147565883008000, 270263264589232282368000, 12724498233251342778240000]
[(0/1), (4/1), (3/1), (19/6), (160/51), (1744/555), (644/205), (2529/805), (183296/58345), (3763456/1197945), (4317632/1374345), (54743776/17425485), (1013549056/322622685), (30594128896/9738413685), (35618973952/11337871545), (10392576224/3308059755), (3111643512832/990466892415), (123968232030208/39460313827935), (48501417558016/15438480702645), (1083228572868608/344802363740835), (4080033616887808/1298715036217599)]

0 件のコメント:

コメントを投稿

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