2015年12月24日木曜日

151224

Ruby


Topswops(2)

1が一番上にくるまでの回数の分布を調べてみた。

def conway1(n)
  ary = []
  (1..n).to_a.permutation{|c|
    i = 0
    while (c0 = c[0]) > 1
      c[0..c0 - 1] = c[0..c0 - 1].reverse
      i += 1
    end
    ary[i] == nil ? ary[i] = 1 : ary[i] += 1
  }
  ary
end

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

出力結果
[1]
[1, 1]
[2, 2, 2]
[6, 6, 6, 4, 2]
[24, 24, 24, 20, 14, 8, 5, 1]
[120, 120, 120, 104, 82, 60, 43, 34, 19, 13, 5]
[720, 720, 720, 648, 548, 440, 338, 268, 218, 160, 104, 65, 44, 26, 14, 5, 2]
[5040, 5040, 5040, 4608, 4020, 3360, 2750, 2324, 1943, 1607, 1274, 958, 726, 551, 409, 277, 182, 122, 61, 21, 4, 2, 1]
[40320, 40320, 40320, 37440, 33504, 28692, 24432, 21212, 18227, 15567, 13197, 10966, 9011, 7363, 5870, 4575, 3479, 2697, 2047, 1413, 948, 593, 333, 157, 87, 47, 31, 23, 6, 2, 1]
[362880, 362880, 362880, 339840, 308640, 271104, 236844, 208332, 182840, 160043, 139694, 120793, 104010, 89139, 75614, 63268, 52466, 43133, 35365, 28277, 21961, 17020, 12791, 9127, 6353, 4473, 3153, 2172, 1425, 900, 582, 369, 230, 117, 51, 22, 8, 3, 1]
[3628800, 3628800, 3628800, 3427200, 3153600, 2811600, 2500368, 2232276, 1988976, 1771746, 1575696, 1393265, 1226695, 1076080, 940355, 818482, 707501, 607993, 520100, 441353, 370227, 307401, 253430, 206784, 165950, 130999, 102035, 78913, 60141, 45064, 33614, 24828, 17835, 12622, 8961, 6203, 4214, 2819, 1871, 1231, 792, 503, 295, 168, 83, 50, 32, 25, 14, 5, 4, 1]

0 件のコメント:

コメントを投稿

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