見出し画像

艦これで統計をしてた頃の話

TLのオタク Advent Calendar 2017 の12/23の記事です.

いっしーです。今日は高校時代のちょっと変な艦これオタク話を少し。

流行りには乗るタイプの人で、数年前に大流行した頃に艦これをはじめました。・・・はずでした、いつの間にか艦これのプレイ中はだいたいGoogle SpreadSheet(エクセルみたいなもの)をいじっていました。なぜなら、期間限定イベントを効率よくクリアするために、システムを理解しようとして僕は検証沼にはまってしまったのであります。一般的なダメージ検証勢の艦これプレイ画面を下に載せておきます。(※トプ画が普通のプレイ画面です)

さて、このゲームのおかげ(?)で、「数学ならっても2次方程式とか日常生活でつかわへんやろいい加減にしろ!!!!」から「数学習ってたからゲーム内部の数式解析できた」という経験ができました。そんなわけで、こんな場をいただけたので、今までやってきた主な艦これ検証の記録と方法を晒します。(ググれば艦これwikiとかに乗ってるかも)たかがゲームにこんなことをって結構思われます、実際自分でもそう思ってます。けれども、こんな手法があるんだ~と思ってもらえるとうれしいです。

1:夜偵発動率検証

内容:九八式水上偵察機(夜偵)の発動率(夜間触接発生率)の検証

手法:Rを用いた統計解析

①:カイ二乗検定二項検定を用いた、Lv以外の要因の排除

検定、って確率統計で習うと思います。p値??キムさんの仮説???何に使うのこれ???ってのが第一印象だと思いますが、「なんらかの条件」と「発動率」に関係があるのかどうなのかを数学的に証明するのが検定です(詳しい人に怒られそうな表現ですが)。詳しくは調べてみてね!

②:モデル式に対する重回帰分析を行い、AICを比較してもっともフィットしている仮説を選ぶ。

最小二乗法ってやつの強化版です。実験でデータをプロットして、当てはまりそうな直線をバーッって引くアレ。それを平方根√xだったり、対数関数log(x)だったりする形に当てはめることができます。けれども、「うーん、このデータはy=√xっぽいなぁ」って判断は人間まかせ。AICというのは、その人間任せのモデルが数学的にどれだけあってるかを示す指標です。

結果:発動率は装備している個数ごとに抽選が行われ、発動率はLvの平方根で計算されていることが分かった。


2:イベント海域などの特効ダメージ検証

内容:特定の条件下で入るボーナスダメージの計算式を求める。

手法:背理法・ニュートン法

従来の計算式中に乗算、加算補正の項を入れた式を定義する。そして、その補正に対して逆算式を求めて、矛盾が生じない補正を選び出す。めちゃくちゃ大雑把に言えば、背理法をめちゃくちゃ大量に用意して、矛盾が出たところはダメ、でなければそこっぽいから詳しく調べようってことです。

ダメージ検証初期では、補正値は勘だよりで適当に打ち込んで見ていました。しかし、砲台小鬼・集積地のダメージ検証の頃にはニュートン法を用いて補正値をより早く特定する手法も確立されました。ニュートン法とは、方程式の解を高速で求める古典的なアルゴリズムです。詳しくは調べてね!(2回目)

(初心者なのでソースコード警察がこわい…)


終わりに

昔の僕は「艦これは結局は確率ゲー、編成・装備を整えてあとはお祈り。それなら当然確率・統計学が艦これイベント攻略には必須wwww」という感じでした。わりと今でもそうですが。さて最近はどうかというと、検証にはもう飽きてお船のゲームからは引退してます。一言だけ伝えるとしたら、ソシャゲーのシステムとかは調べないほうが幸せにすごせますよ。今メインのFGOでは絶対にシステム面を覗かないようにしています。これからはゆるゆるガチャライフを送りたいなぁと思ってます。_(:3」∠)_