ボウリングの期待値計算

スコア表からの計算

© 2012 御厨 啓補

MathMLを利用しています。正しく表示されない人はこちらのpdf版をご利用ください。

目的

一般的なボウリングのスコア表を生データとし、スコアの期待値を算出する計算式を作る。 この場合の期待値とは「アベレージ」とは異なる。

計算方法

具体的に

  1. スコアからの、「ピンを倒す確率」の算出方法
  2. あるフレームにおいてあるスコアになる確率の分類
  3. あるフレームにおいてあるスコアになる確率の漸化式
  4. 期待値算出
  5. ある点数以上のスコアを出す確率

という順番で算出方法を示す。

スコアからの、「ピンを倒す確率」の算出方法

一般的なスコア表とは、次のようになっている。

1 2 3 4 5 6 7 8 9 10
                              
                   

これから、「残りピンの本数」から「倒したピンの本数」を集める。

1
n→10本のうちn本倒すk→10-n本のうちk本倒す
 

サンプリングとして、x本ピンが残っている中でy本倒した回数を数え、それを C(x,y) とする。

以下の表は、残り数と倒した数を表にしたものである。

残り本数xに対してy本倒す確率は D(x,y) = C(x,y) Σ k = 0 x C(x,k) によって求められる。

これから作る漸化式には、各レーンに於ける「一投目にa本倒し、二投目にb本倒した確率 P(a,b) 」が必要になる。
便宜上、ストライクは P(10,0) としておく。
この確率はより正確なものに近づけるため、一投目も二投目も倒す本数の確率が変わらないとして、関数Dより求める。

P(a,b) = { D(10,a) D(10-a,b) |a10 D(10,10) |a=10 によって求めることが出来る。

また、 c{0,1,...,9,,×} に対して、 T(c) = { Σk=0c P(k,c-k) |c=0,1,...,9 Σk=09 P(k,10-k) |c= P(10,0) |c=× も漸化式によく使うため、ここに定義しておく。

なお、"/"、"×"は一般的な各国で使用されるスペア、ストライク記号である。
一部分を黒塗りにする文化は日本において顕著にある。

あるフレームにおいてあるスコアになる確率の分類

漸化式にて期待値を計算するにはnレーン目の得点で分類する他に、次以降のレーンで取得するスコアによっても分類する必要がある。
なぜならば、nレーン目の得点はnレーン目に必ずしも決まるわけではなく、ストライクやスペアを考えればn+2レーン目まで長引く可能性があるからだ。
仮にこの分類を「未来スコアによる分類」としておこう。

今回の方法では、次のように分類した。

全部で25種類に分類できる。
10レーン目に関しては、スペアの場合はあと1投、ストライクの場合はあと2投投げれてるルールであり、上の分類を適用しても問題はない。
なお、この場合の「nレーン目取得」とは、「nレーン目一投目の取得」ではなく「nレーン目2投投げ終わった後の加算点数」である。

また、1レーンの最大取得は30点である。
これからの漸化式に因る計算の簡略化上、nレーン目のスコアの分類は-30~300点の331通りとする。

レーン数による分類は、「0レーン目」に初期値を与えて10レーン目までの11通りに分類する。

以上により、ボウリングの期待値計算には「レーン数分類×スコア分類×未来スコアによる分類」=[0~10]×[-30~331]×[25種類]の値を持つ多次元数列が必要になる。

以上の変数を用い、nレーン目にスコアsにfの状態でなっている確率を X(n,s,f) とする。
故に、最終的なスコアがsである確率は Σ f F X(10,s,f) である
また、求める確率の性質上、任意のnにおいて Σ s = 0 300 ( Σ f F X(n,s,f) ) = 1 が満たされる。

あとは X(n,s,f) を具体的に求めることが出来れば、期待値は求められる。

(漸化式の条件分岐をなくすために、たとえばスコアの分類を-30まで下限を引き下げるなどの不自然な分類を行っている。
スコアが-30~-1になる確率は当然0であるし、他にも確率算出に必要としない部分もある。
あくまで説明の簡略化ということでこのような分類を行っており、もしプログラミング実装などに使う場合には注意が必要である。)

あるフレームにおいてあるスコアになる確率の漸化式

以下の初期値をまず与える。

そして、以下の漸化式を用いることで期待値を算出できる。
適用するのは n1 且つ s0 の時である。

  1. X(n,s,-) = Σk=09 ( X(n-1,s-k,-) T(k) + X(n-1,s-k,k) )
  2. i{0,1,...,9}の時、
    X(n,s,i) = ( X(n-1,s-10-i,-) T(×) + X(n-1,s-10-i,×) ) T(i) + X(n-1,s-10-i,×i) + Σk=0i ( X(n-1,s-10-k,-) T() + X(n-1,s-10-k,) ) P(k,i-k)
  3. X(n,s,) = ( X(n-1,s-20,-) T(×) + X(n-1,s-20,×) ) T() + X(n-1,s-20,×) + Σk=09 ( X(n-1,s-10-k,-) T() + X(n-1,s-10-k,) ) P(k,10-k)
  4. X(n,s,×) = ( X(n-1,s-20,-) T() + X(n-1,s-20,) ) P(10,0)
  5. i{0,1,...,9}の時、
    X(n,s,×i) = Σk=0i ( ( X(n-1,s-20-k,-) T(×) + X(n-1,s-20-k,×) ) T(×) + X(n-1,s-20-k,××) ) P(k,i-k)
  6. X(n,s,×/) = Σk=09 ( ( X(n-1,s-20-k,-) T(×) + X(n-1,s-20-k,×) ) T(×) + X(n-1,s-20-k,××) ) P(k,10-k)
  7. X(n,s,××) = ( ( X(n-1,s-30,-) T(×) + X(n-1,s-30,×) ) T(×) + X(n-1,s-30,××) ) P(10,0)

これを、10レーン分適用させることによって、 X(1,s,f) から X(10,s,f) まで逐次求めることが出来る。

なお、上の漸化式では数式の意味を分かりやすくするため、多少式が冗長になっている。
実際に利用する場合は
X(n-1,s-10-k,-) T() + X(n-1,s-10-k,)

( X(n-1,s-20-k,-) T(×) + X(n-1,s-20-k,×) ) T(×) + X(n-1,s-20-k,××)
は各レーンでの計算で何度も使うため、あらかじめ計算しておくなどの工夫をすることで計算回数を減らすことが出来る。
また、線形漸化式であるため、行列を用いることで漸化式を求めずに一般項を求めることができる。
ただし、一般項を一般的な差分方程式による方法で求めるには331×25=8275次正方行列のジョルダン標準形とその相似変換を求める必要が出てくる。

期待値算出

nレーン目のスコアの期待値は E(n) = Σ s = 0 300 s ( Σ f F X(n,s,f) ) で求めることが出来る。

ある点数以上のスコアを出す確率

ボウリングを行う際に、「s以上のスコアを出す確率」は期待値よりも重要視されると思われる。
これは、ボウリングが純粋にハイスコアを競うゲームである為である。

X(n,si,F) = Σ s = i 300 ( Σ f F X(n,s,f) )

今後の課題

以上の計算式にて期待値は求めることが出来る。
この計算法には、欠点も含めていくつかの特徴がある。

これから、以下を見つけることが今後の課題としてあげられる。