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 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。