夢想メモリ

ゲームの攻略、データ、感想、縛りプレイのこと等を中心に、ゲームとは無関係の雑記も書きます。

東方原作 抱え落ちをモデルで捉えてみる

東方ではボムを持ったまま被弾すると、基本的にその分のボムが失われてとても不利になる。 だから私は一切抱え落ちしないようにプレイしているのだが、 一切抱え落ちしないようにプレイするより、 多少抱え落ちのリスクを許容した方がクリアしやすいのではないかと思い、 簡単なモデルを作って考察してみることにした。

弾幕STG全体にも適用できる気もするのだが、東方以外の弾幕STGの経験が殆ど無いので分からない。

まず区間と言う概念を導入してみる

区間はある程度の弾幕のまとまりを表す。 1つの区間はボムによる弾消しと無敵時間で抜けられる。 ボムを使わなかった場合、ある確率で被弾せずに避けきることができ、 被弾してもその際の弾消しと無敵時間で抜けられるものと仮定する。 ここではボムと被弾時の弾消しは同等で、1ミスと1ボムを等価として考えている。

1つの区間は、分かりやすい例ではボスの通常攻撃やスペルカードの1つに相当する。 しかし、1ボムで終わらない弾幕では1ループ分などに相当し、 1つの通常攻撃やスペルカードが複数の区間に分割される。 道中では妖精や陰陽玉などの雑魚敵の群れ1つなどを表す。

1区間モデル

ある1区間を避けきれる確率をp、持っているボムの個数をBとおく。

この区間をボムで突破した場合、ボムが1個減るので損失は1とする。

この区間でボムを使わなかった場合、pの確率で損失は0、 1-pの確率でボムB個を失って1ミスするので損失はB+1。 損失の平均値は(1-p)(B+1)となる。

ここで(1-p)(B+1) < 1と置き、pについて解くと、p > B/(B+1)。 つまり、ボムをB個持っている時はB/(B+1)以上で避けられるなら避けた方が損失が少ないという結果が得られる。 基準となる確率は1個なら1/2、2個なら2/3、3個なら3/4、4個なら4/5……となる。

このモデルは、ボムを使い続けてボムがなくなった場合は避けを試みることを考慮していない為、大きくずれる。 実際、ボムを使う場合の損失は1より小さい。

1区間繰り返しモデル

ある1区間を避けきれる確率をpとする。 被弾時に供給されるボムの数をSとおき、被弾以外でボムが供給されることはないものとする。 この区間を繰り返し、ある限りボムを使い続けた時の損失の平均を考える。

ボムが1~S個の時、ボムを使って区間を突破するので次回のボム所持数が1減る。 ボムがS個になるのは、前回ボムが0個で1-pの確率で避けに失敗した時である。 ボムが0個になるのは、前回ボムが1個でボムを使った時と、 前回ボムが0個でpの確率で避けに成功した時である。

この区間を充分繰り返した時にボム数がx個である確率をf(x)とおく。

  • f(1) = f(2) = …… = f(S) = (1-p) * f(0)
  • f(0) + f(1) + f(2) + …… + f(S) = 1

だから

  • f(0) = 1/(S + 1 - Sp)
  • f(1) = f(2) = …… = f(S) = S(1-p) / (S + 1 - Sp)

ボム0個で避けに成功した時だけ損失0、他の場合は1ミスか1ボムだから損失1。 よって損失の平均は

(S+1)(1-p) / (S + 1 - Sp)

つまり、ミス時の供給ボムが

  • 2個なら3(1-p) / (4 - 3p)
  • 3個なら4(1-p) / (5 - 4p)
  • 4個なら5(1-p) / (6 - 5p)

ボムB個を持って避けに挑戦した時の損失平均は先程のモデルと変わらず(1-p)(B+1)。 よって、ボムを撃たない方が損失が低くなる基準となる確率は、

  • ミス時に2ボム供給されるシステムでは
    • 1ボム所持時 5/6
  • ミス時に3ボム供給されるシステムでは
    • 1ボム所持時 3/4
    • 2ボム所持時 11/12
  • ミス時に4ボム供給されるシステムでは
    • 1ボム所持時 7/10
    • 2ボム所持時 13/15
    • 3ボム所持時 19/20

ミス時に供給される数以上のボムを持っている時、避けた方が良い場合は無い。

このモデルは、ボムを使い続ける場合の損失を過小評価している。 実際、ボムを撃ち続けても所持ボム数の確率分布が計算通りになるまでが長い為、 損失はもっと大きい。

1ボム比較モデル

ボムを温存するのはより難しい場所で使う為なので、ボムを使い切ることを考える。

連続する2区間があり、1つ目の区間を避けられる確率はp、 2つ目の区間を避けられる確率はqとする。ボムは1個持っており、これを使い切ることを考える。

1つ目の区間でボムを使った場合、 qの確率で0ミス1ボム(損失1)、1-qの確率で1ミス1ボム(損失2)。損失の平均は2-q。

2つ目の区間でボムを使う場合、 pの確率で0ミス1ボム(損失1)、1-pの確率で1ボム抱え落ちした後にボムを使うので1ミス2ボム(損失3)。 損失の平均は3-2p。

ここで、3-2p < 2-qと置き、pについて解くと、p > (q+1) / 2 = q/2 + 0.5 この条件を満たす時は抱え落ちのリスクを許容してボムを温存した方が、 平均して2p-q-1の利得が得られる。

この考え方は、間の区間で全てボムを使う場合、2区間が離れていても適用できる。 持っているボムをB個、 最初の区間を避けられる確率をp、最後の区間を避けられる確率をq、 その間の(B-1)個の区間はボムで突破するものとする。

最初の区間でボムを使った場合、 qの確率で0ミスBボム、1-qの確率で1ミスBボム。損失の平均はB+1-q

最後の区間でボムを使う場合、 pの確率で0ミスBボム、1-pの確率でBボム抱え落ちした後にBボム使うので1ミス2Bボム。 損失の平均は2B+1-p-Bp

B+1-q > 2B+1-p-Bpをpについて解くと、p > (q+B) / (B+1) = q/(B+1) + B/(B+1) この条件を満たす時はボムを温存した方が平均して(B+1)p-q-Bの利得が得られる。