a(2n) = a(n), a(2n + 1) = a(n) + a(n + 1)
という性質があるが、
a(n + 1) = a(n) + a(n - 1) - 2(a(n - 1) mod a(n))
を使って求めてみた。
オンライン整数列大辞典の
A002487(http://oeis.org/A002487/list)
と比較し、答え合わせしてみる。
def A002487(n)
a, b = 0, 1
ary = [a, b]
i = 1
while i < n
a, b = b, b + a - 2 * (a % b)
ary << b
i += 1
end
ary[0..n]
end
ary = A002487(91)
# OEIS A002487のデータ
ary0 =
[0,1,1,2,1,3,2,3,1,4,3,5,2,5,3,4,1,5,4,7,3,8,5,7,
2,7,5,8,3,7,4,5,1,6,5,9,4,11,7,10,3,11,8,13,5,12,
7,9,2,9,7,12,5,13,8,11,3,10,7,11,4,9,5,6,1,7,6,11,
5,14,9,13,4,15,11,18,7,17,10,13,3,14,11,19,8,21,
13,18,5,17,12,19]
# 一致の確認
p ary == ary0
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。