2015年3月30日月曜日

150330

Ruby


Heterosquare

3次のHeterosquareが何個あるか?
ただし、

123  345  567  781
894  296  498  692
765  187  321  543

187  321  543  765
296  498  692  894
345  567  781  123

は同一のものとする。

cnt = 0
(1..9).to_a.permutation{|a|
  ary = []
  # 縦
  (0..2).each{|i| ary << a[i] + a[3 + i] + a[6 + i]}
  # 横
  (0..2).each{|i| ary << a[3 * i, 3].inject(:+)}
  # ななめ
  ary << a[0] + a[4] + a[8]
  ary << a[2] + a[4] + a[6]
  cnt += 1 if ary.size == ary.uniq.size
}
p cnt / 8

出力結果
3120

0 件のコメント:

コメントを投稿

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