最近、交友関係の広がりの都合でダブルクロスを遊ぶ機会が増えている。
世界観とかルールはいいとして、他に見ない判定方法であり、こういうのを見るとちょっと計算したくなってくる。判定方法は以下の通り。
1. 複数個の10面ダイスを振る。 2. クリティカル値以上の出目のダイスがなかった場合は最も高い値を達成値として採用。クリティカル値以上のダイスは達成値を10として再度振り足す。 3. 2で振り足したダイスがクリティカル値以上の場合は達成地にさらに10を足して振り足す。すべてクリティカル値未満だった場合は最も高い値を達成値として採用。 4. クリティカル値以上の目がでなくなるまで繰り返す。 |
説明が分かりにくいかもしれないけど、ダブルクロスを遊んだことのない人がこんなエントリーを読みに来るとも思えないので、テキトーなままにしておく。説明が理解できないけど、どうしても知りたいという方はルールブックを読むとかセッションに参加するとかしてもらうとよいと思う。
それはそうと、手始めに期待値を計算してみる。
・判定ダイス1個、クリティカル値10の場合
まず、最も単純な例を抜き出して計算してみる。
期待値の計算は、達成値にその達成値となる確率を掛けたものの総和である。
例えば、2D6の場合、確率と出目は以下の表の通りになる。
確率 | 出目 |
1/36 | 2 |
2/36 | 3 |
3/36 | 4 |
4/36 | 5 |
5/36 | 6 |
6/36 | 7 |
5/36 | 8 |
4/36 | 9 |
3/36 | 10 |
2/36 | 11 |
1/36 | 12 |
これらの積の総和が期待値となるので、
というわけで、2D6の期待値は7と求めることができる。
同様にダブルクロスでも確率と達成値の積を書き出していくのだが、クリティカルがあるため無限級数となるのでちょっと頭を使わなければならない。
面倒なので、何の説明もなく式を書き出して行きたくなるところなのだけど、それではあまりにも不親切なので、確率と事象を書き出しいく。
・ダイスロール1回目(1~9)
確率 | 出目 |
1/10 | 1 |
1/10 | 2 |
1/10 | 3 |
1/10 | 4 |
1/10 | 5 |
1/10 | 6 |
1/10 | 7 |
1/10 | 8 |
1/10 | 9 |
・ダイスロール2回目(11~19)
1回目のダイスロールで10が出たときはクリティカルなので、10に2回目の出目を足すことになる。
確率 | 出目 |
1/100 | 11 |
1/100 | 12 |
1/100 | 13 |
1/100 | 14 |
1/100 | 15 |
1/100 | 16 |
1/100 | 17 |
1/100 | 18 |
1/100 | 19 |
・ダイスロール3回目(21~29)
確率 | 出目 |
1/1000 | 21 |
1/1000 | 22 |
1/1000 | 23 |
1/1000 | 24 |
1/1000 | 25 |
1/1000 | 26 |
1/1000 | 27 |
1/1000 | 28 |
1/1000 | 29 |
・ダイスロール4回目(31~39)
確率 | 出目 |
1/10000 | 31 |
1/10000 | 32 |
1/10000 | 33 |
1/10000 | 34 |
1/10000 | 35 |
1/10000 | 36 |
1/10000 | 37 |
1/10000 | 38 |
1/10000 | 39 |
以下同様
これを数式に書き出すと期待値Eは以下のように表現できる。
各数値をいちいち書き出すのは面倒なだけなので、Σでまとめた。式はこうやってどこまでも続くけど、分子が10ずつ上がっていくのに対して分母は10倍ずつ増えていくので収束する形になる。このまま式を解いていく。
ここで、大きい括弧の中の2項目以降を見てもらいたい。これは一番上の式と一致する。つまり、この式は入れ子構造になっている。この部分をEと置いてしまい方程式を作ることができる。
あとちょっと。このは次のようにして解くことができる。
を解くには、 という形を作ってやれば、最初と最後の項以外を消すことができる。 |
以上より、ダイス1個のときの期待値は6.111(有効数字4桁)ということが示された。
・判定ダイス1個、クリティカル値Cの場合
クリティカル値10の場合を求めたのだから、自然と他のクリティカル値も求めたくなるものである。そんなわけで、上の計算を拡張してクリティカル値Cが2~10のときの期待値の一般解Eを求めてみようと思う。
今度は上のようにまどろっこしい表などは作らずにいきなり数式に書き起こす。基本的に手順は同じで、無限に続く部分をどうにか初期のEと同じになるよう式変形して整理して、等比数列の総和の形にしてクリアするというもの。計算ミスさえなければ難しいことはない。
ここで大きい括弧の中にEが現れるので先程と同様にEと置く。
この部分の展開は省略する。 |
以上より、クリティカル値2~10に於いての期待値の一般式を求めることができた。
一応、各クリティカル値と期待値の対応を表にしておく。
クリティカル値 | 期待値 |
2 | 91 |
3 | 41.5 |
4 | 25.33 |
5 | 17.5 |
6 | 13 |
7 | 10.17 |
8 | 8.286 |
9 | 7 |
10 | 6.111 |
このようにして求めることができたが、これはダイス1個の場合という極めて限られた条件である。今回はここで止めておくけど、気が向いたらダイスを増やしたときの期待値や標準偏差、成功確率について議論してみたい。
なお、この計算方法によってソード・ワールドRPGのレーティング表の期待値も求めることができる。
はてなブログに移行してこちら、数式は基本的にMathJaxを使って入力しているのだけど、はてなブログはMathJaxに完全対応しているわけではなく、上手く出力できないものがある。
今回、計算そのものは30分くらいで終わったのだけど、入力に難儀した。主要部分は2時間くらいで入力を終了したのだけど、MathJaxのはてなブログ仕様固有のエラーを大量に吐き出してその処理のために4時間くらいかかった。大カッコと中カッコは中の文字列のサイズに対する対応が一切できずに通常のサイズでしか表示できずに、結局すべて小カッコで済ませることにした。見た目は悪いがどうにもならないから仕方がない。
20181204追記
クリティカル値10の場合について、別の解法で解けたので、そちらについても紹介しておく。やってることはそれほど違わない。スタートはおんなじだけど、途中経過が少し異なる。というか、シグマの計算については公式をいくつかひねり出した方が後々楽かもしれない。今度、作っておこう。
出発のこの式は同じ。
ここで、上で行ったのと同じ、ずらして引くを2回繰り返す。
汎用性を高めるために公式を導いておく。上でについては上で出しているので省略、について導出する。
ここで、 ということが分かっているので、 |
なので、 , となる。
これを代入する。
となる。
20181215追記
先日、シグマの中が指数関数になっているものについて、公式を作っておこうと書いたけど、調べたら普通にあった。シグマの項目じゃなくて数列のところに文字の説明もなく載っていたので見落としてた。数列の総和をSnと表記している。
とのこと。