Navigation


RSS



キングボンビーの「サイコロ5vs10」

「桃太郎電鉄」シリーズのキャラクター「キングボンビー」の悪行の1つに「プレイヤーがサイコロを5個振り、キングボンビーがサイコロを10個振って、出目の和が多い方が勝ち。プレイヤーが負けたら物件を捨てられる」という悪行、名づけて「サイコロ5対10対決(サイコロ5vs10)」があります。普通に考えたら勝つの無理じゃん! という話ではありますが、(プログラムがイカサマをしていない限り)絶対負けるというわけではありません。極端な話、こちらが全部6を出し、向こうが全部1を出したら、30-10で勝てるわけですよね。では、どれほどの確率で勝てるのでしょうか?


前提

5個と10個が同じ出目の場合、プレイヤーが負けとなるようです。よって、「5個が10個の出目を上回る」という場合を考えます。


確率の近似値を求める

※大学教養課程程度の統計学の知識を前提に書いています。簡単な説明についてはイントロダクションに書いてありますが、よく理解できなければ検索して調べてみてください。

実際に計算しようとすると大変です(後で表計算ソフトで計算した結果を示します)から、まずは手計算でも可能な近似計算から。

まず、サイコロの出目を確率変数Xで表せば、Xの平均(期待値) E(X)と、分散 V(X) は以下のようになります(計算過程は予備知識1.を参照)。

  • E(X) = 7/2
  • V(X) = 35/12

次に、サイコロ5個や10個の場合を考えていきます。サイコロ5個の出目の総和をX5、10個の出目の総和をX10とおけば、

  • E(X5) = 5E(X) = 35/2
  • V(X5) = 5V(X) = 175/12
  • E(X10) = 10E(X) = 35
  • V(X10) = 10V(X) = 175/6

として、それぞれの平均と分散が求まります。中心極限定理を用い、X5の分布は N(35/2, 175/12)、X10の分布は N(35, 175/6) にそれぞれ(近似的に)従うと考えてもよいでしょう。

今度は、X5-X10 がどんな確率分布に従うのかというわけですが、正規分布の和は正規分布になるわけですから、

  • E(X5-X10) = E(X5)-E(X10) = -35/2
  • V(X5-X10) = V(X5)+V(X10)= 175/4

により、X5-X10は N(-35/2, 175/4) に従う ということになります。

次に、この分布を標準化(予備知識4.)します。

  • Z := (X5-X10 - (-35/2)) / √(175 / 4)

としてZを定義すれば、これは N(0, 1) に従うはずです。
ところで、我々が求めようとしたものはなんだったでしょう。「サイコロ5個の出目の総和が、10個の総和に勝つ確率」でしたね。つまり X5 - X10 > 0.5 となる確率を求めればよいわけです(なぜ > 0 でないかは予備知識2. をご覧ください)。X5 - X10 > 0.5 のとき、

  • Z > 18 / (√175 / 2) = (36/35)√7 ≒ 2.721

となるわけですから、標準正規分布表から Z > 2.721 となる確率を求めれば、

  • P(Z > 2.721) ≒ 0.00325

の結果を得ます。よって、プレイヤーが勝てる確率は 約0.00325(0.325%) と求まりました。

分布表には 2.72 と 2.73 のときの値を載せていますが、今回の中途半端な 2.721 という値であれば、両者の値の間隔を単純に 1:9 で分けてしまう(線形補間)のが簡単でよいと思います(大きくは間違えないはずです)。つまり、P(Z > 2.72) ≒ 0.003264, P(Z > 2.73) ≒ 0.003167なので、だいたい 0.00325 で良いでしょうということです。


表計算ソフトでちゃんと計算する

だいたいの値は出ていますが、中心極限定理とか、離散分布を連続分布にするなどと「近似」を使ってきましたので、どれだけの精度があるのかは気がかりです。そこで、表計算ソフト OpenOffice.org Calc (ELTらしくオープンソースソフトです) を使ってちゃんと計算してみることにします。

まずは、サイコロの出目の和の確率分布を求めなければなりません。1個の出目の分布は自明(すべて1/6)です。2個の出目は、1個の出目と、次の1個の出目の組み合わせを考えて求めます。3個の場合は、最初の2個の出目と、3個目の出目の組み合わせから求められます。これを繰り返し、10個の場合は9個の出目と1個の出目の組み合わせで求めるわけです。こうすると、表計算ソフトでも割と簡単に求められます(うまく工夫すれば、式のコピー&ペーストで何個分でも求められるのです)。

次に、プレイヤーの勝率を考えていきます。例えば、10個の出目の総和が10だったとすると、プレイヤーは5個で11以上を出せば勝てます。10個の出目が11だったなら、プレイヤーは12以上を出せばよいわけです。このように考えて、10個の出目として考えられる値それぞれに対し、その出目が起こる確率と、プレイヤーの出目がそれを超える確率を掛けたものを求め、それらをすべて加えれば、プレイヤーの勝率が導けます。

結果、約0.00279 (0.279%) という値がはじき出されました。近似的に得た結果は、2割ほど誤差を含んでいたことになります。まあ、求めようとする値が非常に小さい値であるうえに、かなりいい加減な近似計算でしたから仕方ないでしょう。ゼロ1個違っていなかった分だけマシと思わねば。(^^;;


ダウンロード

実際に作成した表計算ドキュメントと、Calcで作成したPDFファイルをダウンロードできるようにしておきます。よかったら参考にしてください。