2015年11月4日水曜日

151104

Ruby


Kolakoski sequence(2)

短くしてみた。

def A000002(n)
  ary = [1, 2, 2]
  i = 2
  while ary.size < n
    ary += [1 + i % 2] * ary[i]
    i += 1
  end
  ary[0..n - 1]
end
ary = A000002(108)

# OEIS A000002のデータ
ary0 =
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,
 1,2,2,1,1,2,1,1,2,1,2,2,1,2,2,1,1,2,1,2,2,1,2,1,1,
 2,1,1,2,2,1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,1,2,
 2,1,2,1,1,2,2,1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,
 2,1,2,1,1,2,1,2,2]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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