2019年7月7日日曜日

190707

Ruby


A013587

Enumerative Geometry and String Theory に公式が載っていたので求めてみた。 

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

def A013587(n)
  ary = [0, 1]
  (2..n).each{|i|
    s = 0
    (1..i - 1).each{|j|
      k = i - j
      s += ary[j] * ary[k] * j ** 2 * k * (k * ncr(3 * i - 4, 3 * j - 2) - j * ncr(3 * i - 4, 3 * j - 1))
    }
    ary << s
  }
  ary[1..-1]
end

p A013587(14)

出力結果
[1, 1, 12, 620, 87304, 26312976, 14616808192, 13525751027392, 19385778269260800, 40739017561997799680, 120278021410937387514880, 482113680618029292368686080, 2551154673732472157928033617920, 17410560213476464590484763013222400]

0 件のコメント:

コメントを投稿

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