2015年10月31日土曜日

151031

Ruby


Alternating permutation

オンライン整数列大辞典の
A000111(http://oeis.org/A000111/list)
と比較し、答え合わせしてみる。

def A000111(n)
  e_ary = [1]
  ary = [1]
  n.times{|i|
    new_ary = ary.unshift(0)
    (1..i + 1).each{|i| new_ary[i] += new_ary[i - 1]}
    ary = new_ary.reverse
    e_ary << ary[0]
  }
  e_ary
end
ary = A000111(26)

# OEIS A000111のデータ
ary0 =
[1,1,1,2,5,16,61,272,1385,7936,50521,353792,
 2702765,22368256,199360981,1903757312,19391512145,
 209865342976,2404879675441,29088885112832,
 370371188237525,4951498053124096,
 69348874393137901,1015423886506852352,
 15514534163557086905,246921480190207983616,
 4087072509293123892361]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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