2020年8月24日月曜日

Call of Cthulhu 7版の対抗ロール:「失敗」と「ファンブル」が出たときはどうすればいいのか?

はじめに 

去年、同人誌のネタ用に「Call of Cthulhu 7版の「対抗ロール」はどれくらい対抗できるのか計算した」という記事を書いた。6版の対抗ロールと異なり、7版の対抗ロールは確率がパッと分かりにくいので雑に計算したのだが、後から見返してみると「引き分けの時は受動側有利」と勘違いしていたり(実際は引き分けとするかやり直し)、考察も今見ると浅くて再計算する必要があるように感じた。
そこで、今回は「「失敗」と「ファンブル」が出たとき」に注目して、どのような処理を行うのが良さそうか、今後の確率計算のために検討したい。

まとめ

両方とも失敗した時は「おそらく」振り直しとするか引き分け(あるいは双方失敗として処理)にしといた方が確率的に無難。あとはダイスを振る時間との兼ね合いになると思われる。

対抗ロールの要件

まずは対抗ロールのやり方について復習する。対抗ロールは日本語版ルールブックP87に記載がある。

  • 2人(PC同士、あるいはPCとNPC)で適当な能力値を提示し、それを基準に1d100ロールを行う。
  • お互いの成功度を比較する。
    • 成功度はクリティカル>エクストリーム>ハード>レギュラー>失敗、ファンブルの順に高い。
    • 成功度が高い方が対抗ロールに勝つ。
成功度が引き分けだった場合は能力値が高い方が勝利する。能力値も同じだった場合の処理は色々あるが、ここでは確率をきちんと求める都合上「決着がつくまで振り直し」としたい。
ここで、「失敗」と「ファンブル」が出たときの記載はルールブックにはない。単に成功度を比較するという文面では「失敗」が出た方がロールに勝つとも読み取れる。実は前回の記事はここで失敗側がロールに勝利する設定になっている。この条件の処理はKPによって変わってくると思うが、どのようにすべきなのだろうか。これが今回の疑問点である。

成功度と確率

各成功度は能力値を $s$ とすると次のような確率に従う。
  • クリティカル: $P(Critical) = \dfrac{1}{100}$
  • エクストリーム: $P(Extream) =\dfrac{\lfloor \dfrac{s}{5} \rfloor - 1}{100}$
  • ハード: $P(Hard) =\dfrac{\lfloor \dfrac{s}{2} \rfloor - \lfloor \dfrac{s}{5} \rfloor}{100}$
  • レギュラー: $P(Regular) =\dfrac{s - \lfloor \dfrac{s}{2} \rfloor}{100}$
  • 失敗: $P(Fail) = 1 - \dfrac{s}{100} - P(Fumble)$
  • ファンブル$P(Fumble) = \cases{\dfrac{1}{100} & \text{if } s \ge 50 \cr \dfrac{5}{100} & \text{if } s \lt 50}$
これらをそれぞれ(ノン)プレイヤーA, Bの能力値 $s_A$, $s_B$ について計算し、成功度の組み合わせ全ての確率を求めればいい……と式で書いても分かりにくい。ここで成功度に立ち戻って、Aの成功率を考えたときにどの成功度なら勝利するか考えてみよう。

A, Bそれぞれの成功度と、どちらが勝利するかの組み合わせは次のようになる。

Aの成功度
ファンブル 失敗 レギュラー ハード エクストリーム クリティカル
Bの成功度 ファンブル ? A? A A A A
失敗 B? ? A A A A
レギュラー B B ? A A A
ハード B B B ? A A
エクストリーム B B B B ? A
クリティカル B B B B B ?

AとあるのはAが勝利する組み合わせ、BとあるのはBが勝利する組み合わせで、?は成功度が等しいため能力値で勝敗が決まる。

ここで、「失敗」対「ファンブル」について、単に成功度が高い方が勝利、という単純な案を考えてみよう。
例として、$s_A = 45$, $s_B = 55$ の時の成功率について考えてみる。各マスの確率は次のようになる。

Aの成功度 (能力値45)
ファンブル 失敗 レギュラー ハード エクストリーム クリティカル
確率 5/100 50/100 23/100 13/100 8/100 1/100
Bの成功度
(能力値55)
ファンブル 1/100 5/10000 50/10000 23/10000 13/10000 8/10000 1/10000
失敗 44/100 220/10000 2200/10000 1012/10000 572/10000 352/10000 44/10000
レギュラー 28/100 140/10000 1400/10000 644/10000 364/10000 224/10000 28/10000
ハード 16/100 80/10000 800/10000 368/10000 208/10000 128/10000 16/10000
エクストリーム 10/100 50/10000 500/10000 230/10000 130/10000 80/10000 10/10000
クリティカル 1/100 5/10000 50/10000 23/10000 13/10000 8/10000 1/10000

成功度が同じ場合、Bの能力値の方が高いのでBの勝利となる。そのため能力値は10のみの差でも、確率に大きな違いが生じる。
Aが成功する確率は $P(A) = 0.2845$、Bが成功する確率は$P(B) = 0.7155$で、約44%の差がある。このうち「失敗」と「ファンブル」の組み合わせは0.2475で、うち0.2425がBの勝利という判定になる。

ここで、例えば「『失敗』『ファンブル』の組み合わせは振り直し」とすると、1回目の対抗ロールで勝利する確率は、それぞれ$P(A) = 0.2795$、Bが成功する確率は$P(B) = 0.4730$となり、先ほどの大きな確率の差がだいぶん緩和された。残りの確率0.2475で振り直しとなる。
2回目以降の対抗ロールも同様な確率で推移すると仮定すると、無限等比数列の極限を考えれば、最終的な確率は$P(A) = \dfrac{0.2795}{1-0.2475} = 0.3714$、$P(B) = \dfrac{0.4730}{1-0.2475} = 0.6286$となる。このような処理にすると成功率の差はおよそ36%となり、先ほどよりやや緩和された。

この「失敗時もあくまで成功度に従って判断」と「両失敗時は振り直し」というキーパリングの差は、お互いの能力値が低いほど顕著になっていく。例えば、極端に$s_A = 1$, $s_B = 2$という組み合わせを考えると、両方とも失敗あるいはファンブルする確率は 0.9702とほぼ100%近いのにもかかわらず、Bの方が能力値が高いため、$P(A) = 0.0569$、$P(B) = 0.9431$となってしまう。一方で、失敗時振り直しとすると$P(A) = \dfrac{0.0099}{1-0.9702} = 0.3322$、$P(B) = \dfrac{0.0199}{1-0.9702} = 0.6678$となり、能力値の比と確率の比が近くなる。

以上のことから、「お互い失敗時は引き分けとするか振り直し」とするのが良さそうだと結論した。ただ、振り直しすると能力値によっては試行回数が嵩む時があるので、その辺りを注意して柔軟に対応していった方が良さそうだ。

0 件のコメント:

コメントを投稿