まるちゃん 2020/03/26 15:24

自動戦闘における攻撃回数と会心の評価(確率と期待値の計算)

スキル、装備の作成(防御力について 2/3) - まるちゃん - Ci-en(シエン)
https://ci-en.net/creator/2689/article/230018

前回の記事より威力4を自分は選択して敵を倒して遊んでいました
やはり問題がありました
ボスのように防御力を持つ敵には連続攻撃Ⅰのスキル威力である
0.6 ( 0.3 * 2 ) というのが通常攻撃である 0.5 の威力より弱くなりました
これは味方だけではなく敵も使用するので
少し弱い攻撃が2回とんでくると考えて死にスキルにしても良かったのですが
やはり自分は気に食わなかったので攻撃回数の評価をより正確なものとしました

今回も自分の考えの整理のためだけにほとんど記事を書かせてもらいます
少し大変でしたが1日で作れたので良かったです

攻撃回数と会心率の評価

自動戦闘の評価は簡単に言うと 与ダメージ / 敵のHP としています
殆どの評価値 < 1.0 をとり敵を倒す場合 > 1.0 となります

2回攻撃の場合

damage = 3 (与ダメージ)
crt = 25% (会心率)
会心倍率を2倍として計算します
期待値を計算して算出します

会心:0回

1 - 0.25 = 0.75 の確率で会心が発生しない攻撃です
0.75 * 0. 75 = 9/16
与ダメージは 3 * 2= 6

会心:2回

0.25 * 0.25= 1/16
与ダメージは 3 * 2 * 2 = 12

会心:1回

ここからが曲者です
これは皆さん1からそれ以外を引いて計算したいはずです
1 - (9/16 + 1/16) = 10/16
しかし、プログラムはそうもいきません(多分)
0.25 * 0.75 * 2 = 10/16 と計算します
今回は2回攻撃なので2を乗算しました
これは最初に会心が出るか、最後に会心がでるかとわかりやすいはずです
でも攻撃回数が増えるごとに複雑になっていきます
これの計算の算出がわかりませんでした
与ダメージは 3 * 2 + 3 = 9

2回攻撃の期待値の計算

6 * 9/16 + 12 * 1/16 + 9 * 10/16 = 9.75‬
与ダメージが3で2回攻撃だから期待値は6とすると
結構数値が違うことにびっくりするはずです

3回攻撃の場合

会心の成功を


失敗をとします

会心:0回

確率は 0.75 * 0. 75 * 0.75 = 27/64
与ダメージは 3 *3 = 9

会心:3回

確率は 0.25 * 0. 25 * 0.25 = 1/64
与ダメージは 3 *3 * 2 = 18

会心:1回

確率は 0.25 * 0. 75 * 0.75 * 3= 27/64
与ダメージは 3 *2 + 3 * 2 = 12



会心:2回




こちらも3通りです
確率は 0.25 * 0. 25 * 0.75 * 3= 9/64
与ダメージは 3 *2 * 2 + 3 = 15

期待値の計算

めんどいからなし

4回攻撃

ここからが本当のスタート
わかるようにすべての発生した順番を網羅して計算していくと
計算量がとんでもないことになるので確率を計算して出さなければいけません
5回攻撃なら 512 回
6回攻撃なら 1024 回
これはありえません。RPGなので攻撃回数が100回にならないと考えて
全部計算するのもありでしたが、悔しいので頑張りました
期待値の計算はしないので与ダメージは考えません

会心:0回

確率は 0.75 * 0. 75 * 0.75 * 0.75 = 81/256

会心:4回

確率は 0.25 * 0. 25 * 0.25 * 0.25 = 1/256

会心:1回





確率は 0.25 * 0. 75 * 0.75 * 0.75 * 4 = 108/256

会心:3回





0.25 * 0. 25 * 0.25 * 0.75 * 4 = 12/256

会心:2回

これが中ボスステージです
どう考えて0回、1回、3回の合計から1を引いたほうが早いです
256 - (81 + 1 + 108 + 12) = 54
0.25 * 0. 25 * 0.75 * 0.75 * n = n * 9/256
54 / 9 = 6 通りあります






N回攻撃:M回会心が発生

ラスボスです
会心率を cri 与えるダメージを dmg とします
確率は cri ^ m * (1.0 - cri) ^ (n- m) * L
与ダメージは dmg * 2 * m + dmg * ( n - m)
このLの求め方が大変でした
みなさんはわかりましたか?
これは並び替えの問題でした
今日は朝起きてからずっと悩んでいました

3回攻撃:2回会心が発生


3! / (2! * 1!) = 3 通り

4回攻撃:2回会心が発生


4! / (2! * 2!) = 6 通り

【正解】N回攻撃:M回会心が発生

確率は cri ^ m * (1.0 - cri) ^ (n- m) * L
L = N! / (M! * (N - M)!) 通りあります
多分これで正解なはずです
理系の学生は自分に正解を教えて下さい
期待値の計算は m = 0 .. n の与ダメージ * 確率の合計です

スクリプト素材

自動戦闘(暫定).txt (自動戦闘(暫定).txt) ダウンロード | VXace スクリプト 【 作成者:まるちゃん 】 | uploader.jp
https://ux.getuploader.com/Rpg_Maker_VXace_Maruchan_Uploard/download/70

多分これで大丈夫なはず
会心率が 20% 程度だと威力 0.3 の合計 0.6 の連続攻撃Ⅰは
0.5 の威力の通常攻撃より低く評価されました
しかし、10% 程度上げると連続攻撃Ⅰより高い評価値を算出しました
多分これで大丈夫なはずです

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索