最近、3人でババ抜きをするケースがあります。誰が勝つ確率が高いのか。Pythonでサイコロを振ってみました。1000ゲーム。もっと多いほうがいいのかもしれない。
初期状態でババを持っている人(ババ持ち)が1抜け(win1)する確率は28%ですが、なぜかババを持っている人から引く(次)人物が1抜けする確率24%よりも高いです。しかし、初期状態でババを持っている人にカードを渡す(初期状態でババから最も遠い人物=最後)が1抜けする確率は実に47%に達します。この人物は負ける確率も24%と最も低いです。しかし2抜けに着目すると、次が最も高い43%となりました。
次、何ターンまでゲームが進むか。以下の通り。横軸がターン数で、ターンの左縦軸が頻度、CDFもプロットしてみました。
1ターンが10秒で進むとすると、だいたい20ターン(3分半)程度で終わるケースが多いということになります。50%のゲームは20ターンで終わります。1ターン3秒なら1分で終わります。
そう言えば子どもたちが気にしているのは、最初の手札で残った枚数でした。だいたい6枚くらいになることが多いです。これは最小が1で最大が13、平均6.7枚、中央値は7枚、標準偏差は1.9枚という結果になりました。分布は以下の通り。
3人に1000回ずつ配っても、0枚になるケースはありませんでした。2人には18枚、1人には17枚配るので、18枚配られたほうが天和になるケースがあっても良さそうなものですが、その確率は充分に低いんでしょう。
使ったコードはこんな感じです。
- https://gist.github.com/wtnb75/8561105
- python babanuki.py|grep result | tr -d ‘a-z,()][‘ | sed -e ‘s/^ //g;’
- Excelで集計