Hearthstone環境考察

使用率をまとめたり環境予測をしたりします。Hearthstoneに関連するトピックをゲーム理論や統計学の視点から取り上げ…たりもできればいいですね…

レジェンド到達までに必要な対戦数を再検証してみた

※自分の書いたコードに不備があったので検証をやり直しました。


「ハースストーン レジェンド」で検索するとハスゲのこのコラムが上位にヒットすると思います。

hearthgamers.com


この中の【1万回戦え】の冒頭に、勝率ごとのレジェンド到達までに必要な対戦数の表があります。

ここで疑問が。






これ何だ???






すぐ下にRedditのソースが掲載されています。一応リンクを貼ります。

www.reddit.com



ソースを見て理解できたのは、

モンテカルロシミュレーションでレジェ到達までの対戦回数を近似計算している
・ハスゲの数値は結果のうち、中央値を提示している

の2点です。


とりあえず、ランク5以上のケースなら追試が簡単そうだったので、さくっと試してみたというのが本題になります。
先に結果を載せておきます。

勝率 平均(元) 中央(元) 平均(追) 中央(追) 平均(再) 中央(再)
50% 700 530 700 529 702 532
51% 506 395 506 395 508 397
52% 386 311 386 311 387 312
53% 307 254 307 254 309 256
54% 252 214 252 215 254 216
55% 213 185 213 185 215 187
56% 184 163 184 163 186 164
57% 162 145 162 145 164 146
58% 144 131 144 131 146 132
59% 130 119 130 119 132 120
60% 118 109 118 109 120 110

※備考
・平均は整数値になるよう四捨五入しています。
・中央は中央値の意味です。
・(元)はソース元の結果、(追)は検証結果、(再)は検証を再度行った結果です(二度検証している理由は後述します)
(追)の部分のコードが誤っていたので、修正し直したものに書き換えました。



結果に関して述べる前に、少しだけ語句の説明をします。


モンテカルロシミュレーションとは
ざっくり言うと、「シミュレーションを何度も繰り返してみて、その結果から真の値を近似する」という方法です。行程としては

①確率で勝ち負けを決め、それを何度も繰り返す
②レジェンドに到達したらストップし、対戦した回数を記録する
③①、②を何度も繰り返し、対戦した回数の平均と中央値をとる

となります。元の検証では各勝率ごとに10000000回試行したようなので、検証でも同じ回数にしました。


●中央値とは
上から順番に並べた時、ちょうど真ん中の値を指します。今回の例に即して言うなら、「10000000人がレジェ到達したとき、対戦回数が5000000番目に多かった人と5000001番目に多かった人の平均」の値ということになります。

これが平均値と異なる理由は、いつまで経ってもレジェンドになれない一部が平均を大きく下げるからです。
今回のケースであれば、中央値に注目してよいと考えます。平均に注目しても構いませんが。



で結果ですが、「1回目の検証結果が明らかにソース元と違う」という現象が起こっています。
これは恐らくソース元の誤りだと思います。ソース元には「ランク5星1からレジェンド到達までの回数」を計算しているとありますが、「ランク5星0から」の回数を計算していると思います*1

自分のコードが間違っていました(ランク5星0からランク1星5までの回数計算になっていました)。リンク元の検証が正しいです。


2回目の検証では、ランク5星0からの回数を計算しました、若干多いですが、だいたいソース元と同じような結果になりました。もともとモンテカルロ法はあまり精度の高い近似法ではないので、ざっくりとした値がわかればそれで良いと思います。
例えば勝率50%の場合、ランク5星0からランク5星1に到達するまでは平均して2戦かかる*2ので、ランク5星0からレジェンド到達までの平均対戦回数がランク5星1からの平均より2戦程度多くなるのは正しいですね。


ちなみに、対戦回数の分布は下のような右に歪んだ分布になります(勝率60%の場合ですが、他の勝率でも同じような形になります)。勝率60%のデッキを使っても到達に300戦以上かかる人もいるわけで、苦労する人はとことん苦労するということですね。

f:id:ta9e2hs:20180702135958p:plain



また、元のデータからもわかることですが、勝率が低いデッキを使うほど、必要な対戦回数が指数的に増加します。
どういうことかというと、勝率53%と勝率52%との対戦回数の差は、勝率54%と勝率53%との対戦回数の差より大きくなるということです。
勝率が低いデッキでレジェンドに到達するのに苦労するというのは当然わかると思いますが、低すぎると本当に桁違いの回数をこなす必要が生まれるということになります。例えば勝率48%の場合、平均して1453戦でレジェンドに到達します*3。これは勝率60%の10倍以上の回数です。


結論:早くレジェンドに行きたいなら強いデッキを使え(自明)

*1:自分のコードが間違っていて、自分がランク5星2からの回数を計算している可能性もありますが。

*2:1/2で1回、1/2^2で2回、...、1/2^nでn回かかり、これらの総和は2になります。

*3:検証と同様の条件です。