[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
0ダメージが多く、50区切りでも25区切りでもよくわからない分布しかでなかったので
1ターンに与えられるダメージの分布を見てみることにしました。
例の如く、現在の私 vs 生命/精神500イージス思い出さんです
1万回のイタレーション、ダメージ200区切りでこんな分布になりました。
なんという綺麗な正規分布!!
青点が解析値、赤線が解析の平均と偏差で書いた正規分布曲線です。
最大値を1として規格化してます。
というわけで1ターンで累計与えられるダメージはどうやら正規分布らしいという結果になりました。
1ヒットごとの分布はグラフにしましたが意味不明すぎたためデータを残してないです。すみません。
正規分布になるということは、勝率を出さなくても平均と偏差さえ分かれば
おのずと勝率も出せそうですね。
わざわざそんな面倒なプロセスは踏みませんけども。
この鶴、今現在は自国オンリー公開ですが、
国が滅亡した際には管理してるホームページとともに一般公開しようかななんて考えています。
何か他に考察しておくことあるかなぁ…
ちなみに起動するとこんな画面です
結果としては、勝ち数と平均ダメージ(倒した場合のも倒してないと仮定した場合の平均)、
標準偏差、最大ダメージ、最小ダメージの計5項目出力します。
私はいちいち自分のステを入力する必要がないので
ソースにそのまま値入力して使っていますけども。
さて、ITERATIONですが
現在の私のステと、HP4000生命/精神500、イージス思い出の仮想相手と戦わせて検証してみます。
勝ち数よりも、平均と偏差見ればいいような気がしますが、一応三項目チェックします。
書くのが面倒なので5回計算させます
まずはデフォのITERATION=1万から
# 勝ち 平均 偏差 1 7187 4618 1025 2 7057 4585 1032 3 7045 4594 1027 4 7070 4587 1017 5 7141 4600 1000
それぞれの平均と偏差を計算してみます
平均 偏差 誤差(%) 勝ち 7100 61 0.86 平均 4597 13 0.28 偏差 1020 13 1.27
わずか1%以内に68%、2σを考えても2%以内に95%含まれることになるので
ほぼ収束してると言っていいのではないでしょうか?
まあ一応試しにITERATION=10万も同様にやってみます。
# 勝ち 平均 偏差 1 71305 4600 1012 2 70991 4594 1020 3 70957 4596 1019 4 71090 4599 1018 5 70949 4599 1023
平均 偏差 誤差(%) 勝ち 71058 149 0.21 平均 4598 3 0.07 偏差 1018 4 0.39あたり前ですが、かなり精度上がりますね。
ただし、10万回計算させると1秒間くらい計算時間が増します
続いて、ITERATION=1000回と少なくしてみます。
# 勝ち 平均 偏差 1 704 4594 1033 2 724 4632 990 3 719 4569 989 4 713 4597 1010 5 724 4611 1003
平均 偏差 誤差(%) 勝ち 717 8 1.12 平均 4601 23 0.50 偏差 1005 18 1.79許容誤差3%と考えるなら1000回の計算でも十分かもしれませんね
まあでも1万回がミリセカンドのオーダーで計算終了するので、暫定1万回が
やはりいいのかなという印象です。
以上が召喚獣をセットした場合ですが、一応発動率の低いエンペセットした場合の
ITERATION=1万回についても検証しておきます。
# 勝ち 平均 偏差 1 8035 5022 1177 2 7994 5006 1175 3 7980 4997 1187 4 7940 5000 1180 5 7982 5014 1178
平均 偏差 誤差(%) 勝ち 7986 34 0.43 平均 5008 10 0.20 偏差 1179 5 0.42こちらの方が収束早いでしょうかね?
わかってはいましたが、やはり今のステだとエンペの方が強いですね
以上でITERATION回数の考察終わりますが、現状の1万回で計算も速いですし特に問題ないように
思われます。
ただご覧頂いて分かるように、平均ダメージに対する偏差の割合が20-25%なので
いくら計算結果が収束していようが、与えられるダメージにかなりバラツキがあることが
わかると思います。
次回は1hit毎のダメージの分布でも描いてみようかな、なんて思ってます
言語はFORTRAN77です。
コード自体そんな難しくなかったので、計算部分だけは数時間で作り終えました。
配布用に入力アシスト部分作るのが面倒でしたけども…
どういうシミュレータかというと、
あるステータスであるステータスの先手取った時に
1ターンで与えられるダメージ計算のシミュレータです。
乱数は実行する度に違うものを生成するように組んでるので
計算結果は毎回変わります。
かっこよく言えばモンテカルロシミュレーションです。
まあ前置きはここまでにしておいて、実際どうなのか
というところを書こうと思います。
まずは精度です。
現在私のステータスですと、伝説英雄1位の枇杷さんに
15先手12勝という結果が残っています。
勝率に直せば8割ですね
でシミュレータの方はどうかというと
勝率に直せば78.8%前後をさまよう感じです。
クリティカルやMP不足等も考慮しています。
どうでしょう?私には良い制度に見えます。
ただし実際のサンプルはたった15戦しかないので
何とも言えない部分もありますね
ということで、以前の私のステで自国の対リズさんと
戦ったデータも残っています。
こちらは34先手25勝です。勝率は68.6%
シミュレータの方はどうかと言えば74.6%あたりです。
もし次に戦って勝てば、35戦26勝=74%にあるので良い線いってると思います。
というわけで今回は作ったよという紹介だけでした。
欲しい人はあげます。あ、自国民に限ります。
今はイタレーション1万回に固定していますが、
次回はイタレーションの考察でもします。
名前:るーじゅ
国:王下七武海 → ブルーローズ
継承回数:6回