dev-hsimyu

おれが作ったものとかについて紹介したりするブログ

元カレ計算機のグングニルの計算結果検証

こんにちは。

使いにくいUIでおなじみ元カレ計算機の開発者です。

「元カレ計算機でグングニルの計算をした時に結果がおかしいのではないか」という指摘のようなものを見かけたので、自分で検証してみた結果を貼っておきます。

 

まず以下のようにグングニルを10本だけ配置した場合。

f:id:hsimyu:20161124144303p:plain

条件は光属性ランク1、ジョブなし、相手属性は闇、ゼニス攻撃3000、奥義倍率4.5、敵防御固有値10

URLはこれ: 

http://hsimyu.net/motocal?id=4584

 

5本編成した時の値(ハイライトされているもの)で、表示値が正しく計算されているか確かめてみます。

 

基本値1040 + ゼニス3000+ グングニルの攻撃力2132*5) * 有利補正1.5 * 攻刃1.6 = 攻撃力35280

です。ランク1の時は本来は基本値は1000になり、ランク2以上で1000+ランク*40になるのですが、ランク1の時の処理をアレするのを長らく忘れていました。

 

35280が正しいとしてとりあえず進めます。

克己のDA率は二手中と同様で、SLv10で3.4%なので、

基本DA率6.5% + 5*3.4% = 23.5%

で一致しています。

※ちなみに、元カレ計算機で使用されているスキルごとの効果値は

「保存」タブの下部に示してあります。

 

DA率23.5%、TA率3.0%から算出される連続攻撃回数の期待値は

3*0.03 + (1-0.03) * (2*0.235 + (1-0.235)*1) = 1.2880回

f:id:hsimyu:20161124164436p:plain

で一致しています。(電卓画像はGoogle先生)

 

技巧分についてはちょっと説明が面倒なので、まず1本の場合から順に説明していきたいと思います。

克己のクリティカル分は通常技巧(中)と同様で、SLv10で5.7%なので、

1本の場合の技巧期待値は

1.0285 = 1.5 * 0.057 + (1-0.057) * 1

f:id:hsimyu:20161124164852p:plain

になります。これは最初の画像の計算結果と一致しています。

 

通常技巧の複数本同時判定の場合は別判定となるので、例えば3本なら

2.5 * (0.057^3) * 3C3 + 2.0 * (0.057^2) * (1-0.057) * 3C2 + 1.5 * (0.057) * (1-0.057)^2 * 3C1 + 1.0 * (1.0 - 0.057^3 - 0.057^2 * (1-0.057) * 3 - 0.057 * (1-0.057)^2 * 3) = 1.0855

f:id:hsimyu:20161124165326p:plain

となるのですが、実は技巧の場合、「別判定の場合の期待値」と「発生率を加算した場合の期待値」は全く同じになります。3本なら

1.5 * (0.057*3) + 1.0 * (1 - 0.057*3) = 1.0855

f:id:hsimyu:20161124165600p:plain

となり、どちらも変わりません。

数式上で等しいことも導けるのですが、今回の趣旨ではないので別の機会に書くことにします。

 

5本の場合、

1.5 * (0.057*5) + 1.0 * (1 - 0.057*5) = 1.1425

f:id:hsimyu:20161124165723p:plain

となり、最初の計算結果と一致しました。

 

総合*回数*技巧の値は

35280 * 1.1425 * 1.2880 = 51915

です。下1桁が2ずれていますが、計算処理上の整数パースや内部的な値を表示する際の4桁切り上げ等で1~2誤差が出ることがあります。

実際には問題のあるオーダではありませんので、一致しているとして進めます。

 

ターン毎の奥義ゲージ上昇量の期待値は、連続攻撃回数とほぼ同じで、

37*0.03 + (1-0.03) * (22*0.235 + (1-0.235)*10) = 13.5454%

f:id:hsimyu:20161124170242p:plain

で、一致しています。100%貯まるまでのターンは100.0/13.5454 = 7.38を切り上げて8ターンとなります。

 

ダメージの計算に移ります。

攻撃力に技巧期待値を掛けて防御固有値で割ったものが単攻撃ダメージの期待値となります。

35280 * 1.1425/10 = 4030

f:id:hsimyu:20161124170549p:plain

一致しました。

 

奥義ダメージは、ダメージの計算式に奥義倍率をかければいいので、

4.5 * 35280 * 1.1425/10 = 18138

f:id:hsimyu:20161124170649p:plain

いっち

 

最後に、予想ターン毎ダメージを計算します。

8ターン殴って奥義、で1サイクル9ターンなので、

(4030 *  攻撃回数期待値1.2880 * 8 + 18138)/9 = 6629

f:id:hsimyu:20161124170841p:plain

一致しました。

 

ということで、予想ダメージ計算まで全て意図したとおりに計算されていることが分かりました。


グングニルの編成優先度が高くなりやすい理由については詳しく考察していませんが、

通常攻刃小SLv15は12%、通常攻刃中SLv10も12%であるため、

シュバ剣とグングニルを1本ずつ入れ替えていっても攻刃の値は変化しません。

f:id:hsimyu:20161124171330p:plain

この場合に、シュヴァリエソード1本分を入れた時の攻撃力差528とマグナ攻刃12%の寄与より、

グングニルを1本入れた場合の連続攻撃回数の上昇率0.07と克己期待値の上昇率0.0627による寄与が大きくなる範囲があるということかと思います。

(単純に乗算比較はできないのですが、変化しない要素を無視すると

x: 攻撃力, y: 攻撃回数, z: 技巧期待値とすれば、ある編成から1本シュバ剣かグングニルを増やした時の攻撃力の変化量は

Δf1 = (x + 2660) * 1.12 * y * z = 1.12xyz + 2979yz

Δf2 = (x + 2132) * (y + 0.07) * (z + 0.0627)

= (x + 2132) * (yz + 0.0627y + 0.07z + 0.07*0.0627(二次の微小量なので無視する))

≒ (x + 2132) * (yz + 0.0627y + 0.07z)

= xyz + 0.0627xy + 0.07xz + 2132yz + 134y + 149z

 

Δf = Δf1 - Δf2 = 0.12xyz + 847yz - 134y - 149z - 0.0627xy - 0.07xz

となり、xがだいたい3万〜6万程度、yとzが1.0 ~ 1.5の範囲であることを考えると、

各項の変化範囲は(正しい書き方ではありませんが)

Δf = (3000 ~ 7000) + (847 ~ 2000) - (134 ~ 200) - (149 ~ 223) - (1800 ~ 5600) - (2100 ~ 6300)

という感じになるので、(特に攻撃力や連続攻撃率、期待攻撃回数が高いほど)右辺第5~6項が大きくなっていき、Δfが負 => グングニルを1本増やした時の寄与のが大きいという状況が生まれやすいのかと思います。

攻撃回数と技巧期待値どちらにも寄与する武器というのは、期待値に期待値に期待値を重ねたような手法で計算している元カレ計算機では強いと評価されやすいということですね。

結局は実際のパーティ運用を考えるところは自分でやるしかないのですが。

 

まとめ

  • 元カレ計算機での連続攻撃、技巧期待値、ダメージ等の計算は今のところ正しく行われている
  • グングニルはスキル的に強く評価されやすい構成になっている。