精度向上
内部的な攻撃力と切り捨て
キャラの攻撃力は、内部的には端数を含んでいる。そして、詳細情報の攻撃力欄に表示される値は、内部的な攻撃力を切り捨てた値になっている。例えば、内部的な攻撃力が85.1でも85.4でも85.99でも攻撃力は85と表示されてしまう。逆に言うと、攻撃力が85と表示されていても、実際の攻撃力aは85<=a<86を満たす値という事しかわからない。 そのため、ゲーム内で使われている値や、行われている計算を推測する際にどうしても誤差が生じてしまう。
切り捨てを逆手に取る
モンクは筋力 +3のとき、基礎倍率cは1.16129 <= c < 1.16216と見積もれている。そして、昨日は c=1.162なのではないかと推測した。もっと確信を持ってc=1.162と言えるだけの証拠を揃えたい。
そこで今日は、上に書いた「切り捨て」を逆手にとって、精度の高い推定を行ってみる。標語的に言えば
という事。こんな風に考える:
装備無しでは基礎攻撃力が71で、これに指輪を装備して攻撃力+rしたとき表示される攻撃力は (71+r)*c となるはず。さらに攻撃力増のバフをb%つけたとすると、攻撃力は(71+r)*c*(1+b/100)となるはず。
そこで、c=1.162と仮定し
[Case1] r=2, b=45としてみると
(71+2)*1.162*1.45=122.9977
[Case2] r=6, b=-5としてみると
(71+6)*1.162*0.95=85.0003
となる。どちらも整数にとても近い値になっている所がポイント。もし、c=1.162という推測が正しいとすると、攻撃力はCase1では122、Case2では85と表示されるはず。ところが、cの値が1.162からわずかでもズレていて、cが1.162より少し大きければ、Case1で123と表示されるだろうし、逆に、cが1.162より少し小さければ、Case2で84と表示されてしまうはず。
なので、攻撃力がCase1で122、Case2で85と表示されれば、相当高い精度でc=1.162だと言ってよいはず。
境界実験
ここまでの話をまとめると、こんな実験をすればいいことが分かる。
[Test1] 攻撃力+2の指輪をつけ、攻撃力+45%のバフを付ける(例えば、ヒドゥンアームズ15%+バトソン30%)。
これで、攻撃力の表示が122となっていれば成功。
[Test2] 攻撃力+3の指輪を2つ付け、衰弱(攻撃力-75%)を付けたうえで、攻撃力+70%のバフを付ける。
(例えば、バトソン30%、モンクレイズ20%、ヒドゥンアームズ15%、攻撃型パぺ5%)
これで、攻撃力の表示が85となっていれば成功。
結果
結果は期待通り[Test1]では122、[Test2]では85となった。
同様の実験を筋力+1、+2でも行ってみる。
筋力 +1 の場合
昨日の予想だと、c=1.078だった。
r=8, b=55として
(71+8)*1.078*1.55=132.0011 実測値は 132
r=4 b=135として
(71+4)*1.078*2.35=189.9975 実測値は 189
筋力 +2 の場合
昨日の予想では、c=1.12
r=1.5 b=150
(71+1.5)*1.12*2.5=203.0000 実測値 203
r=0, b=110
71*1.12*2.1=166.9920 実測値 166
分析
どれも高い精度で、予想通りの結果となった。
なので基礎倍率は
筋力+1 | 筋力+2 | 筋力+3 |
---|---|---|
7.8% | 12% | 16.2% |
と言ってよさそう。そして、筋力+1につき、 4.2%増えるという予想もたつ。モンク以外の職でこれが変わるのかどうかはまだ分からない。