なかなか数学的、プログラミング的にみて、実に面白い企画です。
その1では、数学の確率を考えてみようかと思う。
実は私、数学屋を名乗っていますが、確率論がいまいち解っていません。
数Aの「場合の数」はやりましたが、確率・統計について高校や大学でまったく触れてきませんでした。
そのため、間違った考え方をしている可能性があることを、あらかじめご了承ください。
導き方が泥臭かったり、面倒な計算をしていたりするかもしれませんが、数学的に外れて行かなければ、おそらくそれほど問題は無いかと考えています。
まずは、トランプ用語を多様するので、先に書いておきます。
・スート(♠、♣、♢、♡)
・シーケンス(A、2、3、4、5、6、7、8、9、10、J、Q、K)
・ジョーカー
ババ抜きをする上で、シーケンスが同じとか異なるということが重要になります。
では、本番。
ジョーカーを1枚含む53枚を52人に配る。
配り終わって、2枚持っている人、つまり引かれる人をA、引く人をBとし、
Aが持っているカードをa1、a2
Bが持っているカードをb
とする。
まず、Aがこの時点で上がってしまうケースを考える。
つまり、a1とa2のどちらかがジョーカーでなく、a1とa2のシーケンスが同じということ。
Aがジョーカーを持つ確率を計算してみます。
A以外の51人は、1枚しか持っていないので、それぞれジョーカーを持つ確率は1/53です。
51人分を足し合わせて、51/53。
全事象の1から51/53を引いて、1-(51/53)=(53/53)-(51/53)=(53-51)/53=2/53
のように計算することも可能であります。
まぁ、回りくどい泥臭い方法ですが、納得の行く値が出ています。
Aがジョーカーを持つ確率=2/53
Aがジョーカーを持たない確率=51/53
ここまでは良いかと思います。
続いて、a1とa2のシーケンスが同じになる確率を求めてみます。
13*(4/52)*(3/51)=1/17
このように書いても、
(52/52)*(3/51)=1/17
と書いても、意味は同じです。
よって、a1とa2のシーケンスが異なる確率は、全事象から引けばいいので、
1-(1/17)=(17/17)-(1/17)=(17-1)/17=16/17
これらより、
Aがジョーカーを持つ確率=2/53
a1とa2が同じシーケンスになる確率=(51/53)*(1/17)=3/53
a1とa2が異なるシーケンスになる確率=(51/53)*(16/17)=48/53
実は、約分しないで表記したほうが、納得が行くかと思うので、そちらで表記する。
a1 | a2 | Aが上がれる | Aが上がれない |
ジョーカーを除く52枚 (52/53) | a1と同じシーケンス (3/52) | (52/53)*(3/52)= 5.6603773585% | 0% |
ジョーカーを除く52枚 (52/53) | a1と異なるシーケンス (48/52) | 0% | (52/53)*(48/52)= 90.5660377358% |
ジョーカーを除く52枚 (52/53) | ジョーカー (1/52) | 0% | (52/53)*(1/52)= 1.8867924528% |
ジョーカー (1/53) | ジョーカーを除く52枚 (52/52) | 0% | (1/53)*(52/52)= 1.8867924528% |
小計 | 5.6603773585% | 94.3396226415% |
よって、
Aが上がれる確率=3/53≒5.6603773585%
Aが上がれない確率=50/53≒94.3396226415%
続いて、Aが上がれなく、Bの番になったとして、Bが上がれる確率と上がれない確率を考える。
Bから見るに、Aが上がれなかったということは、Aはジョーカーを持っているか、a1とa2のシーケンスが異なるということ。
つまり、トータルで50/53になればよい。
まず、Aの可能性を考える。
[1] a1がジョーカーを除く52枚の内の1枚で、a2がa1と異なるシーケンス
[2] a1がジョーカーを除く52枚の内の1枚で、a2がジョーカーの1枚
[3] a1がジョーカーの1枚で、a2がジョーカーを除く52枚の内の1枚
a1の分母を53、a2の分母をa1を除いた52とすると、
[1] (52/53)*(48/52)
[2] (52/53)*(1/52)
[3] (1/53)*(52/52)
のように計算できる。
これに、Bの可能性も考慮する。
[4] bがa1と同じシーケンス
[5] bがa2と同じシーケンス
[6] bがa1とb1のどちらとも異なるシーケンス
[7] bがジョーカーの1枚
と考えられ、それぞれの確率は、
[4] (3/51) ただしa1がジョーカーの場合は(4/51)
[5] (3/51) ただしa2がジョーカーの場合は(4/51)
[6] (44/51)
[7] (1/51) 当然a1やa2のどちらかのときには存在しない
表にまとめると、
a1 | a2 | b | Bが上がれる | Bが上がれない |
[1] (52/53) | [1] (48/52) | [4] (3/51) | 2.6637069922% | 2.6637069922% |
[1] (52/53) | [1] (48/52) | [5] (3/51) | 2.6637069922% | 2.6637069922% |
[1] (52/53) | [1] (48/52) | [6] (44/51) | 0% | 78.1354051054% |
[1] (52/53) | [1] (58/52) | [7] (1/51) | 0% | 1.7758046615% |
[2] (52/53) | [2] (1/52) | [4] (3/51) | 0.0554938957% | 0.0554938957% |
[2] (52/53) | [2] (1/52) | [5] (4/51) | 0% | 0.1479837218% |
[2] (52/53) | [2] (1/52) | [6] (44/51) | 0% | 1.6278209397% |
[3] (1/53) | [3] (52/52) | [4] (4/51) | 0% | 0.1479837218% |
[3] (1/53) | [3] (52/52) | [5] (3/51) | 0.0554938957% | 0.0554938957% |
[3] (1/53) | [3] (52/52) | [6] (44/51) | 0% | 1.6278209397% |
小計 | 5.4384017758% | 88.9012208657% |
まぁ、こんな詳細に分類せずとも、
Bが上がれる確率=(52/53)(49/52)(3/51)=49/901≒5.4384017758%
と安直に計算出来る。
さて、ゲームスタート時のAが上がれる確率は特殊な例で、以降はBの番が訪れたとした場合の確率なので、
1人目をA、
2人目をB、
とすると、
3人目=(1-(1人目が上がれる確率)-(2人目が上がれる確率))(49/901)
4人目=(1-(1人目が上がれる確率)-(2人目が上がれる確率)-(3人目が上がれる確率))(49/901)
…
という計算になる。
手計算は面倒なので、Excelを使う。
A1セルに=3/53
A2セルに=49/901
A3セルに=(1-SUM(A$1:A2))*(49/901)
A4セル以降は、A3セルをコピペする
A列の表をプロットしてみると、
のように、反比例のようなグラフとなる。
B1セルに=A1
B2セルに=B1+A2
B3セル以降は、B2セルをコピペする。
B列の表をプロットしてみると、
100%に下から近づく漸近線のグラフとなります。
これは何人目まで回ったら上がれ確率で、
50%を超えるのが、13人目
60%を超えるのが、17人目
70%を超えるのが、22人目
80%を超えるのが、29人目
90%を超えるのが、42人目
続いて、誰かが上がったあとのことを考えてみます。
動画をみてもわかる通り、誰かが引いて上がりました。
次の人は前の人が上がってしまった為に引くことが出来ず、引かれる側になり、1枚しか持っていないので、そのまま上がりになります。
ババ抜きは、このように進行していくのですが、
誰かが上がると、シーケンスの組が1組減ります。
4枚残っているのが減るのか、
2枚残っているのが減るのか、
ここで確率計算が面倒になります。
シーケンスが何枚残っているのか、
(4枚残っている,2枚残っている,0枚残ってる)
このように表したとすると、樹形図は以下のようになります。
誰かが上がると、下へと進んで行きます。
各分岐点ごとに分岐する確率を求め、その分岐点でのAやBの確率を求めることになるのだろう。
流石に面倒です。
というわけで、その1はこのへんにしておきます。
その2はプログラミングに重点を置いて話しを進めましょうかね。
ではでは