2015年12月23日水曜日

151223(4)

Ruby


Topswops(1)

すぐに求まる部分だけ求めてみた。
なお、オンライン整数列大辞典の
A000375(http://oeis.org/A000375/list)
にこの続きが載っている。

def conway(n)
  max = 0
  (1..n).to_a.permutation{|c|
    if c[0] > 1
      i = 0
      while (c0 = c[0]) > 1
        c[0..c0 - 1] = c[0..c0 - 1].reverse
        i += 1
      end
      max = i if i > max
    end
  }
  max
end

(1..11).each{|i| p conway(i)}

出力結果
0
1
2
4
7
10
16
22
30
38
51

0 件のコメント:

コメントを投稿

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