クリ率実験3

引き続きクリ率実験。やり方は前回と同じ。今日はクリ率を61%にまで下げて実験した。

98プリで、訓練用の武器をつけて通常放置でかかしを叩く。
クリダメは364で、非クリダメは 194。なので、ダメージメータで総与ダメを記録すれば、クリの回数が計算で分かることになる。

1セット60回で、20セット実験した。その結果はこんな感じ。

16740
18440
17080
17760
18610

17080
17080
17590
17760
17760

17760
17760
17250
16910

17760
18610
18610
17930
17250

分析は後日

昨日の結果の分析

分析

昨日のデータを分析してみる。
「50回ずつ叩く」という実験を22回した。そのうちの2つは数え間違いの可能性が大きいので、そのデータは捨てる。すると、結局50*20=1000回分のデータが得られたことになる。この間に出たクリの回数は合計で809回。つまりクリが発生の統計上のクリ発生率は80.9%となる。なので素朴な結論としては

「多分、設計上のクリ発生率は80%だろうねー」

と言う感じ。

信頼性の違い

これはこれでいいのだけれど、少し釈然としない部分が残る。
もし、誰かが(1000回ではなく)100回叩くという実験をして、その結果(例えば)80回クリが出たとしたら、やはり結論としては

「多分、設計上のクリ発生率は80%かなー」

となる。結論としては両者は全く同じ。でも、その信頼性はだいぶ違うはず。なにしろ両者には実験回数に10倍の開きがあるのだから。

信頼性の可視化

では「何とかして、その信頼性の違いを可視化できないか?」と考えてみる。

それで、いろいろ助言を頂いたり、調べてみりしているうちに結局たどり着いたのが「確率論を使うべし」というもの。やはり逃げられなかったっぽい。やだ怖い。

仕方ないので確率論を少し勉強した。クリ率の分析には「二項分布」ってのが鍵になるらしい。


そして、今回の実験から得られた推定値がこちらの赤いグラフ。
f:id:ochanikki:20180315234804p:plain
0.8 (=80%)付近に高い山が出来ている。これは「実際のクリ率は80%に近いよ」ということを表していて。山の高さは、その信頼性を表している。
一方で、仮に100回叩く実験をしたとして80回クリが出た場合、そこから得られる推定値が青いグラフ。 どちらも80%付近という意味では同じだけれど、推定値の鋭さの違いが見て取れる。

95%信頼区間

このグラフから95%信頼区間を求めてみると、77.6% ~ 82.6% とでる。「実際のクリ発動率が 77.6% ~ 82.6%の間にある」ということの確かさが95%という事。

まあ、要するに結局は最初に戻って「たぶん80%だよねー」となるんだけど。

クリ率実験2

ルータ再起動

昨日、ネット環境がかなり不調だったけれど、今日の昼間ルータの電源を落として
5時間くらい放置しておいたら、少し改善された。

ただ、かかしを叩いてグロするまでの回数を数えてみると、やはり一定していない。この前の日記に書いた方法でクリ率を調べるのは難しそう。
仕方ないので、クリ率を調べる方法を少し変えてみる。

別の方法

90モンク
物理クリ率: クリ率 201.8%

訓練用の武器を付け、パぺとチェインスキルを外す。
かかしを50回叩き、その間の総与ダメをダメージメータで読み取り記録する。
これを何度も繰り返す。

訓練用の武器なので、与ダメは常に一定値。今回実験に使ったモンクの場合、クリが927で非クリが356なので、クリの発生回数をk回とすると

927*k + 356*(50-k) = (総与ダメ)

という関係式が成り立ち、ここからkの値が計算できる。

実験結果

22回繰り返した。総与ダメの値はこんな感じ

40640
41782
39498
40640
40640

41782
41211
41567
41782
41211

39498
41782
42353
38356
41211

40640
40640
39498
41211
42138

41211
42353

分析

さっきの関係式から k= ((総与ダメ)-356*50) / (927-356) という式が得られ、これを計算してみたのがこちら。

40640 40
41782 42
39498 38
40640 40
40640 40
41782 42
41211 41
41567 41.6
41782 42
41211 41
39498 38
41782 42
42353 43
38356 36
41211 41
40640 40
40640 40
39498 38
41211 41
42138 42.6
41211 41
42353 43

実際に計算してみると、kの値が端数になっている事が2回ある。
本来こんなことはあり得ないはずなのに、こうなってしまったのは「50回数えるときに数え間違いをした」という事。つまり、この実験方法だと数え間違いを検出することが出来る。間違えた2回分のデータを捨てて、20回分。つまり1000回叩いた場合のクリ発生数のデータが得られたことになる。この分析はまた後日。

通信遅延

今週、ネット環境を新しくした。普通にウェブを見たり動画を見たりする分には、今までより速度が上がり快適になった。ところが、何故かロードスだけは接続切れが頻発してしまって、以前よりやりにくくなっている。

ギルドダンジョンでは短時間の間に何度も接続が切れる。また、狩りをしていても1秒くらい周りが動かないという事が頻発してる。その間は、おそらく通信が途絶えている。

その上、かかしに関する実験をする際に、かなり致命的な弊害があることが発覚した。いままでは、通常放置状態でかかしがグロするまでに叩く回数は、常に一定だったのだ。けれど、これが変動してしまっている。きっと、鯖側では叩いた判定になっているのに蔵ではそう認識されていない、という状況なのだと思う。

「グロまでの回数が一定」という法則は、昨日の日記に書いたクリの発動率の測定方法において要となるアイディアだったので、困ってしまう。

さきほど、かかしを叩いてみて、グロまでの回数を実際に数えてみた。
理論上は56回でグロするはずなのに、実際に56回でグロしたのは、18回試行中で6回のみだった。これだとまともな実験にならないな…。

クリ率実験1

キャラの詳細情報にはクリ率の項目があるけれど、実際のクリ発生率はこれよりもっと低い。よく聞くのは、

(自分のクリ率) - (敵のクリ耐性)

が、実際のクリ発生率になるという話。ただし、この値が0以下の時はクリは発生せず、また発生率には上限があるようで、上限は80%ぐらいらしい。

この話が本当なのか検証してみたい。

検証方法を考える

確率を扱うので、10回や20回程度叩いた結果を検証してみても信憑性が低すぎる。
1000回ぐらいは叩いてみたい。

けれど、実際に1000回叩いてクリの回数を数えるとなると、とても疲れるだろうし数え間違いも起きそう。

では、概算でもいいので1000回中何回クリが出たかを簡単に調べる方法はないのか。例えば、こんな方法が浮かぶ。

素朴なアイディア

チェインスキルを外し、訓練用の武器を付け通常放置でかかしを一定回数叩く。

訓練用の武器なので、「全てクリだった場合の総与ダメ」と「全て非クリだった場合の総与ダメ」は計算で分かる。この値をAとBとする。また、実際の総与ダメはダメージメータから分かる。これをDとする。このとき、クリ発生率をpとすると

A*p+B*(1-p)=D

という関係式が成り立つはずなので、この方程式を解いて

p=(D-B)/(A-B)

とすれば、クリ発生率が見積もれる。

この方法だと、クリの発生回数を数える必要がなくなるので、検証が大幅に楽になる。

ただし、よく考えると、この素朴なアイディアにはまだ少し欠陥がある。これを修正しつつ実際の実験方法を考えていく。

グロ中ダメと回数のカウント

1つ大きな問題は、かかしのグロ中にダメ値が大きくなってしまう点。これをどう処理したらよいか。グロダメ増を0%にするという手も考えられるけれど、グロダメ増はGPで振ってしまっているので、今更0%にできない。

もう一つ案外問題なのは、例えば1000回叩いて総ダメを見ようと思ったとしても、叩いているのを1,2,3,..と数えていくのは、かなり面倒な作業な上に、数え間違いが起きそうという点。

この2つの問題点を解消するために「グロ回数を数える」という手法を考えてみる。
スタミナの実験により、かかしがグロになるまでの回数は分かっている。
そして、かかしがグロから復帰するまでの時間は5秒間なので、この間に叩かれる回数も一定のはず。

通常状態で叩く→グロ→グロ状態で叩く→復帰

というのを1セットとして、例えば「10セット実験する」としてみる。
こうすると、回数を数えるのがずっと楽になる上に、その間の通常与ダメとグロ与ダメの回数も分かる。

モンクさんの場合

例えば、うちのモンクさんで考えてみると

スタミナ攻撃力については、デフォの+2と信頼の+1で (2+1)*1.3=3.9
ここにGP振りの30%がついて3.9*1.3=5.07となる。

280/5.07=55.22 = 56 (端数切り上げ)

となって、グロまでに叩く回数は56回。そして、グロ中の5秒間で叩く回数は10回だった。

56+10=66が1セット中に叩く回数で、所要時間は30秒ほど。これを16セットやったとすると66*16=1056で、所要時間は8分ほど。

つまり、実験としては「8分ほど通常放置して、ダメージメータを読む」という感じ。

最初に想定した「1000回叩いて、その間のクリ発生数を数える」という作業に比べればずっと現実的。 よし、この実験やろう!
…と思ったけれど、長くなったので続きはまた後日。

簡易比較チャート

プリ計算機で、簡易比較チャートを表示させるようにしてみた。
これは、「攻撃力+1」「攻撃力+1%」「筋力+1」「スキ功+1」「スキ功+1%」のステアップによってどれだけ火力が上がるかを表示するもの。

どの装備を付けるとどのくらい強くなるかを、きっちりと知りたい場合は、計算機に装備のステをきっちり入力したほうがいいけど、少し面倒。なので簡単な比較なら、この簡易チャートを見たほうが簡単。

使うときの注意

  • 上の項目に、現在の装備を正しく入力したときだけ、意味のある結果が出る。
  • 武器を付けているときのみ対応
  • 今はまだプリ限定
  • あくまでも簡易的なものなので、微妙にずれることもある。
  • リアクションダメ増、クリダメ増、グロダメ増には未対応。

バフの重複

ロードスでは、二つのバフが付いた時に、その双方が効果を発揮することを、バフが重複するとか重なると言う。逆に片方分の効果しか出ないときは、バフが重ならないと言う。

バフが重ならないときは、一方のバフが他方のバフを消してしまう事もあるし、表示上は両方のバフが付いているのに効果は片方しかない事もある。

攻撃力計算機では、「すべてのバフが重なる」という前提で攻撃力を計算している。そのため、ゲーム内と計算機とで値が異なるかどうかを見ると、バフが重なるかどうかが分かる。

重複調査

今日、どのバフが重なるのか、重ならないのかを調べてみた。注目したのは、物理攻撃力の部分のみ。

力の秘薬

  • アリエルから紋章と交換できる「力の秘薬」
  • アレンから買える「万能強化の妙薬」
  • ロードス島に祝福を」で付くレイズ

は、このうちのどの二つも重ならなかった。恐らく、この3つは同じグループで、このグループからは、一つの効果しか発揮されないのだと思う。

レイズ

プリのレイズと、傭兵バフも重ならなかった。試したのは

  • ディードリットの「ハイエルフの加護」
  • グラシアの「マーファの加護」
  • 闇司祭の「ファラリスの加護」

の3つ。

あとは、用兵の本も実験してみたかったけれど、希少なのでまた今度確かめてみるつもり。

感想

プリはいつでも自分でレイズを掛けられるので、普段ソロ狩りをするときは
「万能強化」と「赤い袋」を使うくらいになるのかな…。