カードが並ぶ確率


ランダムにシャッフルした1組のカードの中で,ペア(数字が同じ)カードが隣接している可能性について調べたメモ.プログラミングによる簡単なシミュレーション.

スポンサーリンク

「インスクリュータブル」という Joseph Barry 氏のマジックレクチャーDVDの第三巻「グリーン」のなかには,

観客にシャッフルさせた1組のカードの中から,「ペア」が隣接しているものを探す

という手順がある.ここで,「ペア」とは数字が同じカードを指す.解説で Joseph 氏は「ペアがまったく見つからなければどうにかして作ればいいが,ほとんどの場合はペアがみつかる」といっていたが,実際どの程度の確率でペアがみつかるのかを調べてみよう.

ペアカードが見つかる確率

数字が同じカードが隣同士になる確率を調べるが,そのマーク(スート)は一切関係がないので,1組のカードの中には,同じ数字の4枚組のカードが13セットあると考える.つまり,選び方の総数は(ちゃんと考えていないが)

\[
\frac{52!}{(4!)^{13}}
\]

くらいになると思われる.Python で $52!$ のような大きな数字を計算することは厳しいから,配列をランダムに並べ替えてカードのシャッフルを再現し,ペアができているかをシミュレートしてみることにした.10000回×10セットほどやってみれば,そこそこの精度で確率を推定することができると思う.

配列はカードの数字とマークのタプル $(H,2)$ などを用意してもペアカードを捜索できるだろうが(この場合は第2成分が一致すればよい),今回は余りによる分類を使う.例えば 0 から 51 までの数字を並べたとき,13 で割った余りが一致するものを「同じ数字のカード」とみなせば,4つずつ13種類の分類が可能である.

\[
{\rm pair\_test}(52,13,10000)
\]
を10回実行してみると

95.77
95.62
95.65
95.13
95.81
95.22
95.82
95.28
95.68
95.05

 

このような結果に.確かに100%近くペアが見つかるようだ.

 

 

メイトカードが見つかる確率

マークの色と数字が一致する2枚のカードをメイトカードという.たとえば,$\heartsuit A$ と $\diamondsuit A$ ,$\clubsuit 8$ と $\spadesuit 8$ のような組である.これらが見つかる可能性はどれほどだろうか.これは先ほどのプログラムで
\[
{\rm pair\_test}(52,26,10000)
\]
とすればよい.黒赤13種類ずつ,計26種類をシャッフルすると考えている.10回実行すると

63.88
63.56
63.55
63.2
63.16
64.44
63.26
64.01
64.37
64.45

 

このようになった.60%を超えるというのは個人的には意外な結果だった.これだけの確率があるなら,なんらかのトリックに利用できるかもしれない.

 

補足

「2枚組を見つける」ことを前提にコードを書いたため,「3枚組」や「4枚組(Four of a kind)」について調べるためには少し改変が必要である.また,カードの各数字が同じ枚数だけ含まれていることを想定しているため,JOKER を加えての検証する場合も,このまま適用することはできない(メイトカードの検証なら可能).


スポンサーリンク