2022年2月11日金曜日

220211

Ruby


A010754とA010755

計算してみた。

def ncr(n, r)
  return 1 if r == 0
  (n - r + 1..n).inject(:*) / (1..r).inject(:*)
end

def A(n)
  (0..n).map{|i| (0..i / 2).map{|j| ncr(i - j, j)}.inject(:+)}
end

def A010754(n)
  (0..n).map{|i| (0..i / 2 / 2).map{|j| ncr(i - j, j)}.inject(:+)}
end

def A010755(n)
  (0..n).map{|i| (0..(i / 2 - 1) / 2).map{|j| ncr(i - j, j)}.inject(:+).to_i}
end

n = 50
p A(n)
p A010754(n)
p A010755(n)

出力結果
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025, 20365011074]
[1, 1, 1, 1, 4, 5, 6, 7, 23, 30, 38, 47, 141, 188, 245, 313, 888, 1201, 1594, 2080, 5676, 7756, 10429, 13817, 36622, 50439, 68497, 91804, 237821, 329625, 451166, 610247, 1551727, 2161974, 2978230, 4058629, 10161409, 14220038, 19694622, 27007760, 66732392, 93740152, 130427529, 179815516, 439267525, 619083041, 864813846, 1197799127, 2897064773, 4094863900, 5740250973]
[0, 0, 1, 1, 1, 1, 6, 7, 8, 9, 38, 47, 57, 68, 245, 313, 393, 486, 1594, 2080, 2673, 3388, 10429, 13817, 18058, 23307, 68497, 91804, 121541, 159081, 451166, 610247, 816256, 1080399, 2978230, 4058629, 5474584, 7313138, 19694622, 27007760, 36687377, 49387987, 130427529, 179815516, 245730805, 332985281, 864813846, 1197799127, 1645387073, 2242380904, 5740250973]

0 件のコメント:

コメントを投稿

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