ボウリングの期待値計算
スコア表からの計算
© 2012 御厨 啓補
MathMLを利用しています。正しく表示されない人はこちらのpdf版をご利用ください。
Tweet目的
一般的なボウリングのスコア表を生データとし、スコアの期待値を算出する計算式を作る。 この場合の期待値とは「アベレージ」とは異なる。
計算方法
具体的に
- スコアからの、「ピンを倒す確率」の算出方法
- あるフレームにおいてあるスコアになる確率の分類
- あるフレームにおいてあるスコアになる確率の漸化式
- 期待値算出
- ある点数以上のスコアを出す確率
という順番で算出方法を示す。
スコアからの、「ピンを倒す確率」の算出方法
一般的なスコア表とは、次のようになっている。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
これから、「残りピンの本数」から「倒したピンの本数」を集める。
1 | |
---|---|
n→10本のうちn本倒す | k→10-n本のうちk本倒す |
サンプリングとして、x本ピンが残っている中でy本倒した回数を数え、それを とする。
以下の表は、残り数と倒した数を表にしたものである。
残り本数xに対してy本倒す確率は によって求められる。
これから作る漸化式には、各レーンに於ける「一投目にa本倒し、二投目にb本倒した確率
」が必要になる。
便宜上、ストライクは
としておく。
この確率はより正確なものに近づけるため、一投目も二投目も倒す本数の確率が変わらないとして、関数Dより求める。
によって求めることが出来る。
また、 に対して、 も漸化式によく使うため、ここに定義しておく。
なお、"/"、"×"は一般的な各国で使用されるスペア、ストライク記号である。
一部分を黒塗りにする文化は日本において顕著にある。
あるフレームにおいてあるスコアになる確率の分類
漸化式にて期待値を計算するにはnレーン目の得点で分類する他に、次以降のレーンで取得するスコアによっても分類する必要がある。
なぜならば、nレーン目の得点はnレーン目に必ずしも決まるわけではなく、ストライクやスペアを考えればn+2レーン目まで長引く可能性があるからだ。
仮にこの分類を「未来スコアによる分類」としておこう。
今回の方法では、次のように分類した。
- スペア、ストライク以外の場合。つまり、n+1以降のレーンの点数に左右されない場合
- スペア、ストライクの場合
- n+1レーン目で点数が決まる場合
- n+1レーン目取得が0点の場合
- ...
- n+1レーン目取得が9点の場合
- n+1レーン目がスペアの場合
- n+1レーン目がストライクの時の場合(nレーン目でスペアの場合のみ)
- n+2レーン目で点数が決まる場合、つまり、nレーン、n+1レーン目でストライクを出した時
- n+2レーン目取得が0点の場合
- ...
- n+2レーン目取得が9点の場合
- n+2レーン目がスペアの場合
- n+2レーン目がストライクの時の場合
- n+1レーン目で点数が決まる場合
全部で25種類に分類できる。
10レーン目に関しては、スペアの場合はあと1投、ストライクの場合はあと2投投げれてるルールであり、上の分類を適用しても問題はない。
なお、この場合の「nレーン目取得」とは、「nレーン目一投目の取得」ではなく「nレーン目2投投げ終わった後の加算点数」である。
また、1レーンの最大取得は30点である。
これからの漸化式に因る計算の簡略化上、nレーン目のスコアの分類は-30~300点の331通りとする。
レーン数による分類は、「0レーン目」に初期値を与えて10レーン目までの11通りに分類する。
以上により、ボウリングの期待値計算には「レーン数分類×スコア分類×未来スコアによる分類」=[0~10]×[-30~331]×[25種類]の値を持つ多次元数列が必要になる。
- レーン数を n として、引数は整数 Z とする
- スコアを s として、引数は整数 Z とする
- 「未来スコアによる分類」を f として、引数の集合は F とし 、具体的な引数は以下とする
- "-"はnレーン目がスペア、ストライク以外の場合。
- スペア、ストライクの場合
- n+1レーン目で点数が決まる場合
- "0"はn+1レーン目取得が0点の場合
- ...
- "9"はn+1レーン目取得が9点の場合
- "/"はn+1レーン目がスペアの場合
- "×"はn+1レーン目がストライクの時の場合(nレーン目でスペアの場合のみ)
- n+2レーン目で点数が決まる場合
- "×0"はn+2レーン目取得が0点の場合
- ...
- "×9"はn+2レーン目取得が9点の場合
- "×/"はn+2レーン目がスペアの場合
- "××"はn+2レーン目がストライクの時の場合
- n+1レーン目で点数が決まる場合
以上の変数を用い、nレーン目にスコアsにfの状態でなっている確率を
とする。
故に、最終的なスコアがsである確率は
である
また、求める確率の性質上、任意のnにおいて
が満たされる。
あとは を具体的に求めることが出来れば、期待値は求められる。
(漸化式の条件分岐をなくすために、たとえばスコアの分類を-30まで下限を引き下げるなどの不自然な分類を行っている。
スコアが-30~-1になる確率は当然0であるし、他にも確率算出に必要としない部分もある。
あくまで説明の簡略化ということでこのような分類を行っており、もしプログラミング実装などに使う場合には注意が必要である。)
あるフレームにおいてあるスコアになる確率の漸化式
以下の初期値をまず与える。
- または の時、
- の時、
そして、以下の漸化式を用いることで期待値を算出できる。
適用するのは
且つ
の時である。
- の時、
- の時、
これを、10レーン分適用させることによって、 から まで逐次求めることが出来る。
なお、上の漸化式では数式の意味を分かりやすくするため、多少式が冗長になっている。
実際に利用する場合は
や
は各レーンでの計算で何度も使うため、あらかじめ計算しておくなどの工夫をすることで計算回数を減らすことが出来る。
また、線形漸化式であるため、行列を用いることで漸化式を求めずに一般項を求めることができる。
ただし、一般項を一般的な差分方程式による方法で求めるには331×25=8275次正方行列のジョルダン標準形とその相似変換を求める必要が出てくる。
期待値算出
nレーン目のスコアの期待値は で求めることが出来る。
ある点数以上のスコアを出す確率
ボウリングを行う際に、「s以上のスコアを出す確率」は期待値よりも重要視されると思われる。
これは、ボウリングが純粋にハイスコアを競うゲームである為である。
今後の課題
以上の計算式にて期待値は求めることが出来る。
この計算法には、欠点も含めていくつかの特徴がある。
- 1点単位でのスコア取得確率が求められるため、「アベレージ」よりも高度な分析を行うことが出来る。
- サンプリングが少ないと、
となることがある。
これにより、一部の「ピンを倒す確率」が不定形になる。
場合によっては漸化式を適用できなることもあるため、不定形になる場合は何かしらの補間を行う必要がある。 - 「アベレージ」よりも多くのサンプリングが必要になる。
- 1ゲーム分の期待値を求める為に大量の計算量を必要とする。
これから、以下を見つけることが今後の課題としてあげられる。
- 「ピンを倒す確率」が不定形になった時の最適な補間方法
- サンプリング量の減少方法
- 計算量の減少方法、もしくは漸化式を用いない一般項の計算法