3x3のマス目に○を3つ記入 / 2019 一橋大学 第5問

問題

左下の図のような縦 3 列横 3 列の 9 個のマスがある。
異なる 3 個のマスを選び,それぞれに 1 枚ずつコインを置く。
マスの選び方は,どれも同様に確からしいものとする。
縦と横の各列について,点数を次のように定める。

  • その列に置かれているコインが 1 枚以下のとき,0 点
  • その列に置かれているコインがちょうど 2 枚のとき,1 点
  • その列に置かれているコインが3枚のとき,3 点

縦と横のすべての列の点数の合計を  S とする。たとえば,右下の図のようにコインが置かれている場合,縦の 1 列目と横の 2 列目の点数が 1 点,他の列の点数が 0 点であるから, S=2 となる。

f:id:variee:20211109222112p:plain

(1)  S=3 となる確率を求めよ。

(2)  S=1 となる確率を求めよ。

(3)  S=2 となる確率を求めよ。

解説の pdf も作りました。きれいなレイアウトで読みたい方はこちらをどうぞ。

drive.google.com

対称性を利用して数える

問題文中では縦も横も「列」と言っていますが,説明上これは非常にまぎらわしいので慣例に従って横の並びを「行」とよび,縦の並びを「列」とよぶことにします。

これは対称性を利用する問題です。どの小問も「1 つの場合を考えて○○倍」で解けます。

(1)について

 S=3 になるのは 3 個の○が縦一列か横一列に並ぶときです。

f:id:variee:20211109222128p:plain

第 1 行に並ぶ場合を考えて6倍します。求める確率は

 \frac{1\cdot 6}{{}_9\mathrm{C}_3}=\frac{1}{14}

(2)について

第 1 行で 1 点になる場合を考えて 6 倍します。

f:id:variee:20211109222150p:plain

それぞれの図において 2 つの△のどちらかが○になります。求める確率は

 \frac{(2\cdot 3)\cdot 6}{{}_9\mathrm{C}_3}=\frac{3}{7}

(3)について

2 点になるのは「1 つの行と 1 つの列で 1 点ずつ」「2 つの行で 1 点ずつ」「2 つの列で 1 点ずつ」のいずれかのときですが,後ろ 2 つのケースはありえません。このような点のとり方をするには○が  2\times 2=4 個以上必要だからです。

「1 つの行と 1 つの列で 1 点ずつ」の場合しかありません。第 1 行で 1 点とる場合を考えて 3 倍します。

f:id:variee:20211109222205p:plain

それぞれの図において 4 つの△のどれか 1 つが○になります。求める確率は

 \frac{(4\cdot 3)\cdot 3}{{}_9\mathrm{C}_3}=\frac{3}{7}

おまけ:プログラムを組んで計算

各マスに○をおくかどうかを 1 と 0 であらわすと,このマス目は  3\times 3 行列と対応づけられます。

行ごと,列ごとの 1 の個数は 1 を 3 つ並べたベクトルとの積で求められます。

 \begin{pmatrix}
      a&b&c\\d&e&f\\g&h&i
   \end{pmatrix} \begin{pmatrix}
      1\\1\\1
   \end{pmatrix}=\begin{pmatrix}
      a+b+c\\d+e+f\\g+h+i
   \end{pmatrix}

 (1,\, 1,\, 1)
   \begin{pmatrix}
      a&b&c\\d&e&f\\g&h&i
   \end{pmatrix}=
   (a+d+g,\, b+e+h,\, c+f+i)

こうして得られた 6 つの成分に 2 と 3 が何個含まれるか数えると  S がわかります。

以上をもとにmathematicaで計算しました。
 S=0,\, 1,\, 2,\, 3 の確率は順に  \frac{1}{14},  \frac{3}{7},  \frac{3}{7},  \frac{1}{14} です。

   In[]:= AbsoluteTiming[
      lst = Permutations[Join[ConstantArray[0, 6], ConstantArray[1, 3]]];
      b = {1, 1, 1}; c = Transpose@b;
      f[lst_] := Module[{m = Partition[lst, 3], t},
        t = Join[b . m, m . c];
        Count[t, 2] + Count[t, 3]*3];
      g[{x_, y_}] := {x, y/Binomial[9, 3]};
      ans = Reverse[g /@ Tally[f /@ lst]]]
     
   Out[]= {0.0011139, {{0, 1/14}, {1, 3/7}, {2, 3/7}, {3, 1/14}}}


variee.hatenablog.com