15.7 例題: ポーカーの手の数え上げ
ファイブカード・ドロー (five-card draw) は最も単純なポーカーであり、プレイヤーには \(52\) 枚の通常のトランプ一式1から \(5\) 枚の手札 (hand) がゲーム開始時に配られる。ファイブカード・ドローにおける異なる手札の個数は \(52\) 要素集合の \(5\) 要素部分集合の個数に等しく、次のように計算できる:
数え上げの練習として、特別な性質を持つ手札の個数を計算してみよう。
15.7.1 フォーカードの手札
フォーカード (four-of-a-kind) とは、同じ数字のカードが \(4\) 枚揃うことを意味する。フォーカードの手札はいくつあるだろうか? 例えば、次の手札はフォーカードである:
これまでと同じように、この問題を列の数え上げ問題に変換することが最初の一歩となる。任意のフォーカードの手札は次の情報によって一意に特定される:
-
\(4\) 枚のカードの数字
-
最後の \(1\) 枚のカードの数字
-
最後の \(1\) 枚のカードの絵柄
よって、フォーカードの手札から二つの異なる数字と絵柄からなる三つ組への全単射が存在する。例えば、上述した二つの手札には次の三つ組が対応する:
後はそういった列を数えればよい。一つ目の数字の選択肢は \(13\) 個、二つ目の数字の選択肢は \(12\) 個、そして絵柄の選択肢は \(4\) 個ある。よって一般化された乗算則より、フォーカードの手札は \(13 \cdot 12 \cdot 4 = 624\) 個あると分かる。これは \(2{,}598{,}960 / 624 = 4165\) 回に \(1\) 回しかフォーカードが揃わないことを意味する。驚くことではないが、フォーカードは非常に強い役とされている。
15.7.2 フルハウスの手札
フルハウス (full house) とは、数字が同じ \(3\) 枚のカード (三枚組) と数字が同じ \(2\) 枚のカード (ペア) が揃うことを意味する。例えば次の手札はフルハウスである:
ここでも、問題を列に関する問題に変換しよう。フルハウスの手札から次の情報を並べた列への全単射が存在する:
-
三枚組の数字: \(13\) 通り
-
三枚組の絵柄: \(\displaystyle \binom{4}{3}\) 通り
-
ペアの数字: \(12\) 通り
-
ペアの絵柄: \(\displaystyle \binom{4}{2}\) 通り
手札と列の対応関係の例を次に示す:
一般化された乗算則を使えば、フルハウスの手札の個数が分かる:
ここまでは良い調子だ ── しかし、次はこれほど上手く行かない。
15.7.3 ツーペアの手札
ツーペアの手札はいくつあるだろうか? ある数字のカードが \(2\) 枚、別の数字のカードが \(2\) 枚、さらに別の数字のカードが \(1\) 枚あるような手札がツーペアである。例を次に示す:
ツーペアの手札は次の情報が並んだ列で一意に特定できる:
-
一つ目のペアの数字: \(13\) 通り
-
一つ目のペアの絵柄: \(\displaystyle \binom{4}{2}\) 通り
-
二つ目のペアの数字: \(12\) 通り
-
二つ目のペアの絵柄: \(\displaystyle \binom{4}{2}\) 通り
-
最後のカードの数字: \(11\) 通り
-
最後のカードの絵柄: \(\displaystyle \binom{4}{1} = 4\) 通り
よって、ツーペアの手札の個数は次のように計算できる...ように思われる:
しかし、これは間違っている! 上述の列からツーペアの手札への写像が全単射でない事実が問題となる: この写像は \(2\) 対 \(1\) である。例えば、例として示した \(2\) 個の手札に対応する列は \(2\) 個ずつ存在する:
この問題の原因は二つのペアを区別できない点にある。「\(5\) のペアと \(9\) のペアを持つ手札」と「\(9\) のペアと \(5\) のペアを持つ手札」は等しい。フルハウスの手札を数えるとき同じ問題が起こらなかったのは、例えば「\(6\) の三枚組と \(K\) のペア」と「\(K\) の三枚組と \(6\) のペア」が当然ながら異なるためである。
全く同じ理由で間違った個数が計算される例は以前にも見た。それは、第 15.3.2 項で異なるチェスの駒を配置する問題を考えた後に、第 15.4.1 項で見分けの付かない二つのルークを配置する問題を考えたときのことである。そのときと同様に、ここでも除算則を使えば正しい個数を計算できる。今考えている問題では、列の個数がツーペアの手札の個数の \(2\) 倍だと除算則から分かるので、ツーペアの手札の個数は次のように計算できる:
異なるアプローチ
危ないところだった! 実際の試験で同じ問題が出題されたら、多くの生徒は列から手札への写像が \(2\) 対 \(1\) である事実を見過ごし、単位を落とし、犯罪にまみれた人生へ突き進むことになるだろう。より平和な世界を実現するためにできることが二つある:
-
写像 \(f \colon A \to B\) を使って数え上げの問題を変換するときは、\(B\) の各要素に移される \(A\) の要素の個数が全て等しいことを確認する。\(B\) の各要素に移される \(A\) の要素が \(k\) 個なら、その定数 \(k\) を使う除算則を適用できる。
-
念を入れた検算として、同じ問題を異なる方法で解いてみる。数え上げの問題に複数の解法が存在することは多い ── もちろん、全ての解法で得られる解答は一致しなければならない! (異なる解法から異なる見た目をした解答が得られる場合はある。その場合でも、通常は簡単な代数的変形で同じであることが確かめられる。)
一つ目の対策は先ほど行ったので、二つ目の対策を試してみよう。ツーペアの手札と次の情報を並べた列の間には全単射がある:
-
二つのペアの数字: \(\displaystyle \binom{13}{2}\) 通り
-
数字が小さい方のペアの絵柄: \(\displaystyle \binom{4}{2}\) 通り
-
数字が大きい方のペアの絵柄: \(\displaystyle \binom{4}{2}\) 通り
-
最後の \(1\) 枚の数字: \(11\) 通り
-
最後の \(1\) 枚の絵柄: \(4\) 通り
列と手札の対応関係の例を次に示す:
よって、ツーペアの手札の個数は次のように計算できる:
これは以前に得た解答を少しだけ変形したものに等しい。
15.7.4 全ての絵柄が含まれる手札
全ての絵柄を少なくとも \(1\) 枚ずつ含む手札はいくつあるだろうか? この条件を満たす手札の例を次に示す:
こういった手札は次に示す情報を並べた列で特定できる:
-
ダイアモンド、クラブ、ハート、スペードの数字: \(13 \cdot 13 \cdot 13 \cdot 13 = 13^{4}\) 通り
-
最後の \(1\) 枚の数字: \(12\) 通り
-
最後の \(1\) 枚の絵柄: \(4\) 通り
例えば、先ほど示した例は次の列で特定できる:
この手札に対応付く異なる列は存在するだろうか? 実は \(1\) 個だけ存在する! この手札では \(3\diamondsuit\) ではなく \(7 \diamondsuit\) を「最後の \(1\) 枚」とみなすこともでき、そのとき異なる列が得られる。つまり、次の対応関係が成り立つ:
つまり、全ての絵柄が含まれる手札の個数は次の値に等しい:
-
通常のトランプ一式に含まれる \(52\) 枚のカードは、それぞれ絵柄 (suit) と数字 (rank) を持つ。そして、絵柄と数字の組はカードごとに異なる。絵柄には次の \(4\) 種類がある:
\[ \spadesuit\ (\text{スペード}) \qquad \heartsuit\ (\text{ハート}) \qquad \clubsuit\ (\text{クラブ}) \qquad \diamondsuit\ (\text{ダイヤ}) \]そして数字には次の \(13\) 種類がある。昇順に並んでいる:
\[\overset{\text{エース}}{A}\quad 2\quad 3\quad 4\quad 5\quad 6\quad 7\quad 8\quad 9\quad 10\quad \overset{\text{ジャック}}{J}\quad \overset{\text{クイーン}}{Q}\quad \overset{\text{キング}}{K} \]例えば \(8\heartsuit\) は「ハートの \(8\)」を表し、\(A \spadesuit\) は「スペードのエース」を表す。 ↩︎