2014年5月5日月曜日

140505

Ruby


140306でもArray#permutationを用いたが、また別の問題を解いてみよう。

1〜8を下のa〜hに「右にいくほど大きくなり、下にいくほど大きくなる」ように
書き込む方法は何通りあるか?

a,b,c,d
e,f,g
h

i = 0
(1..8).to_a.permutation do |a, b, c, d, e, f, g, h|
  if a<b and b<c and c<d and e<f and f<g and a<e and e<h and b<f and c<g then
    i += 1
    puts i
    puts "[#{a},#{b},#{c},#{d}],[#{e},#{f},#{g}],[#{h}]"
  end
end

これを実行すると、70通りであることがわかる。

ちなみに、(Frame-Robinson-Thrall による鉤公式を用いれば)
λ=(4,3,1)のとき、
dim Sλ = 8!/(6*4*3*1*4*2*1*1) = 70
となり、
#STab(λ) = dim Sλ = 70

0 件のコメント:

コメントを投稿

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