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)]

2021年9月1日水曜日

210901

Ruby


A213261

p(7*n+5) を出力してみた。

def s(k, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == 0}
  s
end

def A(ary, n)
  a_ary = [1]
  a = [0] + (1..n).map{|i| ary.inject(0){|s, j| s + j[1] * s(j[0], i)}}
  (1..n).each{|i| a_ary << (1..i).inject(0){|s, j| s - a[j] * a_ary[-j]} / i}
  a_ary
end

n = 15
a = [7, 49]
ary = (0..1).map{|i| p [0] * i + A([[7, 4 * (i + 1) - 1], [1, -4 * (i + 1)]], n)}
(0..n).each{|i|
  print "#{(0..1).inject(0){|s, j| s + a[j] * ary[j][i]}} = "
  (0..1).each{|j|
    print " + " if j > 0
    print "#{a[j]} * #{ary[j][i]}"
  }
  puts
}

出力結果
[1, 4, 14, 40, 105, 252, 574, 1237, 2568, 5138, 9988, 18893, 34937, 63238, 112370, 196244]
[0, 1, 8, 44, 192, 726, 2464, 7704, 22521, 62281, 164252, 415796, 1015334, 2401462, 5519640, 12363062, 27047913]
7 = 7 * 1 + 49 * 0
77 = 7 * 4 + 49 * 1
490 = 7 * 14 + 49 * 8
2436 = 7 * 40 + 49 * 44
10143 = 7 * 105 + 49 * 192
37338 = 7 * 252 + 49 * 726
124754 = 7 * 574 + 49 * 2464
386155 = 7 * 1237 + 49 * 7704
1121505 = 7 * 2568 + 49 * 22521
3087735 = 7 * 5138 + 49 * 62281
8118264 = 7 * 9988 + 49 * 164252
20506255 = 7 * 18893 + 49 * 415796
49995925 = 7 * 34937 + 49 * 1015334
118114304 = 7 * 63238 + 49 * 2401462
271248950 = 7 * 112370 + 49 * 5519640
607163746 = 7 * 196244 + 49 * 12363062