算数オリンピック・エレガントな解法!

ようやくトビウオってた思考に収まりがついたので、一応の俺の答案ってことで。
論理的思考のやり方はともかく、算数とか数学とかって、訓練してないとホント勘が鈍るよね…。

まずは復習がてら問題を再掲。

<問題>
5×5のマス目に6個の○を次の条件を満たすように書きます。

条件:各行・各列に少なくとも1個は○を書く。同じマスには2個以上の○を書くことはできない。

このとき、6個の○を書く方法は全部で何通りありますか。

で、以下、解答案です。1/25のエントリに書いた考え方も含めて、一から書き出してみる。例によってネタバレにより「続きを読む」記法にて。

基本的な考え方

まずは各行各列に少なくとも1個は入れなければならない以上、入れ方は、(1)6個のうち5個の○を、各行各列に配置する組み合わせと、(2)4個の○を各行各列に重複しないように入れて、5個目6個目を空いている行、空いている列に入れる(ただし(1)と重複しないよう、空いている行かつ列には入れない)、の2パターンが考えられる。

(1)の配置(考え方&計算)

まず5個を入れる組み合わせが、5!=5×4×3×2×1=120通り。残り1個の○は、空いている20マスのうちどこに入れてもいいので、入れ方の組み合わせは全部で、120×20=2400通り … [1]

(2)の配置(考え方)


まず、4個の○を、行・列ともに重ならない場所に入れたとき、条件である「各行・各列に少なくとも1個は○を書く」を満たすためには、最初の4個を図のように入れた場合には、(1)との重複を避けるため、赤で×が書かれた場所には入れられないことから、1個の○は図の緑色で塗られた4カ所のうちどこか、もう1個の○は図の青色で塗られた4カ所のうちのどこか、に入れる必要がある

ただし、図のように、最初に入れた○のうち1つに、あとから入れた2個の○が行・列とも重なるような位置に入れた場合には、

上図のように、(1)の配置(まず黒で書かれた5つの○を各行各列とも重ならないように入れ、最後に黄色で塗られたマスに1個入れた場合)と重なることから、この入れ方も排除しなくてはならない。

(2)の配置(計算)

上記より、最初の4つの○の入れ方が、4!=4×3×2×1=24通り、
(1)と重ならないような、後から入れる2つの○の入れ方が、4×3=12通り、
最初の4つの○を入れるときに空ける(=○を入れない)行と列の選び方が5×5=25通り、なので、
24×12×25=7200通り。
ただし、この計算だと、行が重なる2個の○、列が重なる2個の○をそれぞれダブルカウントしているので、この重複を排除する必要があることから、
7200÷4=1800通り … [2]

解答

[1]+[2]より、2400+1800=4,200通り (答)

というわけで

エレガントに、論理構成だけで解けたんじゃないかな〜♪