2015年5月29日金曜日

150529

Ruby


Toothpick Sequence(1)

The Toothpick Sequence and Other Sequences from Cellular Automata
(http://arxiv.org/pdf/1004.3036v2.pdf)
この論文にもとづき、コードを作成してみた。
そして、オンライン整数列大辞典の
A139250(http://oeis.org/A139250/list)
と比較し、答え合わせしてみる。

def t(n)
  return 0 if n == 0
  m = n.to_s(2).size - 1
  n1 = 2 ** m
  i = n - n1
  t = (n1 * n1 * 2 + 1) / 3
  return t if i == 0
  return t + t(i) * 2 + t(i + 1) - 1
end
ary = (0..53).map{|i| t(i)}

# OEIS A139250のデータ
ary0 =
[0,1,3,7,11,15,23,35,43,47,55,67,79,95,123,155,
 171,175,183,195,207,223,251,283,303,319,347,383,
 423,483,571,651,683,687,695,707,719,735,763,795,
 815,831,859,895,935,995,1083,1163,1199,1215,1243,
 1279,1319,1379]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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