|
なか |
|
回転して一致するものを排除という条件がついたので、
120度回転対称を考慮して、数えて見ました。 上から下に、左から右に1〜9まで番号をつけたとき、 (1,3,4),(9,8,7),(5,6,2)と、 3つの台形に分けて考える。 台形の3ますを2進数に見立てると、 台形内で黒が並ばないのは 0,1,2,4,5 の5通り、 この台形を3つ環状に並べればよい。例題の形だと 450。 台形間の黒ますが不適となるのは、隣り合う台形の 値が 12 または 52 のときなのでこれを除けばよい。 紙に書いてもいけそうですが、perl ならこんな感じです。 foreach $a(0,1,2,4,5){ foreach $b(0,1,2,4,5){ foreach $c(0,1,2,4,5){ if($a.$b.$c<=$b.$c.$a && $a.$b.$c<=$c.$a.$b){ $ring=$a.$b.$c.$a; if($ring !~ /12/ && $ring !~ /52/){ $n++; print "($n) $a,$b,$c\n"; } } }}} |
|
北国
6月12日(金) 1:58:55
MAIL:naka@sansu.org HomePage:naka's Home Page 34635 |