ディフェンダのカードの分かれかた 

 © boco_san (ぼこさん 2014/06 〜)        メイリオ印刷
  1. はじめに
  2. 考え方 ステップ 1
  3. 考え方 ステップ 2
  4. なぜ 50% - 50% にならないのか?
  5. ソフトウェアの説明
  6. 組み合わせを使う計算

はじめに

  ブリッジのプレイでは,ディフェンダ側のカードが,2人にどう分かれているかが問題になります。
  ほとんどの場合,その分かれ方の確率まで知る必要は無く,たとえば,ACBL / JCBL から配布されている 無料ソフトウェア「ブリッジ入門 (LTPB)」の付録に確率の表が載っているので,それをチラッと見ておく程度で十分です。
 けれども,このような表を仔細に見ると,気になることがあります。
 たとえば,ディフェンダ側の枚数が2枚の場合,
  2-0 の分かれ方は 48 % の確率で発生し,
  1-1 の分かれ方は 52 % の確率で発生する。
と書かれています。誰しも疑問に思うのは,なぜ これが 50%-50% ではないのか ・・・ ということです。
 この疑問は,たしか,10 年ほど前に "かずちゃんの掲示板" を賑わせました。 これに対する私の対処法は,コンピュータでプログラムを作成して,確率を計算する ・・・ というものでした。
 しかし,それでは 正しい数字が得られるにしても,分かりやすい説明には なっていません。 また,そういう説明を親切にしてくれるサイトも見当たらないようです。そこで,この計算の仕組みを丁寧に説明することにしました。


考えかた,ステップ 1

 注目するスートは,何でもよいのですが,一応 "スペード" とします。
 ここでは,2枚の分かれ方だけを取り上げます。3枚以上の場合も同様です。便宜上,2人のディフェンダを A, B と名づけましょう。このとき,スペードの枚数の分かれ方は,次の3通りあります。
 [1] A さん 2 枚,B さん 0 枚,
 [2] A さん 1 枚,B さん 1 枚,
 [3] A さん 0 枚,B さん 2 枚.
このそれぞれについて,場合の数を数えます。数え方の説明は後回しにして,得られた場合の数から
   ( [1] + [3] ) / ( [1] + [2] + [3] )
を計算すると ぴったり 48 %,
   [2] / ( [1] + [2] + [3] )
を計算すると 52 % という結果が得られます。
 ここで 当然のことですが,[1] と [3] は等しいので,場合の数を 独立に計算する必要はありません。


考えかた,ステップ 2

それでは,場合の数をどうやって数えたらよいでしょうか?
 考え方の出発点は,52 枚のカードのうち,ディクレアラーとダミーのカードは全て指定されており,しかも,ディフェンダの 26 枚のカードが何であるかも 既知ですが,その 26 枚が どのように 13 枚 − 13 枚に分かれているかが 不明です。
 ただし,26 枚のうち,スペードが 2枚,その他3スートが 26 − 2 = 24 枚であることは,分かっています。
 [1] A さん スペード 2 枚,B さん スペード 0 枚.
この場合,A さんは 2 枚のスペードから 2枚 を取るので,これに対応する "場合の数" は 1通りです。同時に A さんは 24 枚の3スートの山から 13 − 2 = 11 枚を抜き取ります。残ったカードを B さんが持ちます。
 念のために,[2] の場合も,考え方を調べましょう。
 [2] A さん スペード 1 枚,B さん スペード 1 枚,
この場合,A さんは 2 枚のスペードから 1 枚 を取るので,2通りの場合がありえます。同時に A さんは 24 枚の3スートの山から 13 − 1 = 12 枚を抜き取ります。残ったカードを B さんが 取ります。B さんのカードは 完全に特定されたので,B さんについて 場合の数を数える必要はありません。


なぜ 50%-50% にならないのか

 上の考え方で,スペードだけに着目して,その他3スートを忘れると,場合の数は
   [1] + [3] = [2]
となるので,分かれ方の確率は 50%-50% となります。しかし,その他3スートまでを考えると,これは正しくありません。
 [1] の場合を振り返って見ると,A さんは スペードを2枚取ったために,その他スートが 13 − 2 = 11 枚です。いっぽう,[2] の場合には,A さんは スペードを 1 枚取ったので,その他スートが 13 − 1 = 12 枚です。
  24 枚からの抜き取り枚数が このように異なるので,[1] (11 枚抜き取る) の方が [2] (12 枚抜き取る) よりも 抜き取り方が少なくなります。
 50%-50% からのズレは,このようにして理解できます。


ソフトウェアの説明

 このリンク Files.zip には,関連する小さな VB ソフトウェアを2つ納めました。
(1) RandomDeal:52 枚のカードを乱数により配り,シミュレーションにより,分かれ方の確率を求めます。 20 万ディールほどデータ収集をすれば,よく知られている値に近づくことが分かります。
(2) SplitProb:上に述べた方法により,数学的に厳密な確率を求めるソフトウェアです。 実行すると,直ちに結果が画面に表示されます。
 ソースファイル SplitProb.frm も入れてありますので,これを読めば,一般の計算方法をご理解いただけると思います。


組み合わせを使う計算

 数学的に正確な計算をするには,組み合わせ nCr = n ! /r ! (nr)! を使う必要がある。この記号は,n 枚のカードから r 枚を抜き出す方法が何通りあるかを示す。たとえば,13 枚のカードから2枚を引く場合は 13C2 = 13・12 / 2 = 78 通りである。
 この記号を使うと,上の3通り [1]〜[3] での 場合の数 (カードの配り方) は,2個の因子の積により与えられ,
[1] 2C2 24C11 = 1 (24!/11! 13!)
[2] 2C1 24C12 = 2 (24!/12! 12!)
[3] これは,[1] に等しいので,計算する必要が無い。
上の [1] と [2] の比を取ると,[1] / [2] = (1/2) 12 / 13 = 6 / 13 となり,これより,48 %, 52% という確率が得られる。
 この方法は,次のように,一般の場合 に拡張できる。
 いま,ディフェンダが,注目するスートであるスペードを N 枚,その他3スートを 26−N 枚 持つ場合を考える。このとき,これら N 枚 が2人のディフェンダに x 枚 + (Nx) 枚 のようにスプリットする "場合の数" W (N,x) は,上と同様の考えにより,A さんが スペード N 枚から x 枚を取り,スペード以外の3スート  26−N 枚から  13−x 枚を取るので,
   W (N,x)  =  N Cx   26−N C13−x
となる。これを x について 0 から N まで加えた総和は,
  Σx=0, N W (N,x) = Σx=0, N N Cx   26−N C13−x = 26C13
となる。ただし,ここでは2項係数の和公式を用いた。
 したがって,それぞれの W (N,x) を 総数 26C13 (=10,400,600) で割ることにより,それぞれの場合の確率が得られる。


この基本アルゴリズムを Visual Basic で書くと,
total = Combin(26,13)
For N = 2 To 8        ' 2枚から8枚までの分かれ方を調べる。
 For x = 0 To N \ 2
  Events = Combin(N, x) * Combin(26 − N, 13 − x)
  If x < > N − x Then Events = Events * 2 ' 2人の枚数が等しくない場合.
  Print N; " cards into "; x; "−"; N − x; " "; Events / total * 100; "%"
 Next
Next