ハムログ

プログラミングやツールなどのTIPSや備忘録を書いていきます。他にも趣味に関することを書くかもしれません。右も左も分からない情報系初心者。

到達階層における獲得ヒーローソウルの期待値計算 導出編 (Clicker Heroes)

この記事では、獲得ヒーローソウルの期待値の式を導出していきます。
本当は、各式のグラフなどを提示して、わかりやすく解説できれば良かったのですが、許して下さい・・・。
期待値計算をしたい方は
到達階層における獲得ヒーローソウルの期待値計算(Clicker Heroes) - ハムログ
を見てください。

では、導出していきましょう。

期待値を導出する過程

  1. Primal Bossから取得できる基礎ヒーローソウル数と出現確率
  2. 基礎ヒーローソウル数の式の私的解釈
  3. Primal Bossの最終的なヒーローソウル数
  4. 期待値の計算

Primal Bossから取得できる基礎ヒーローソウル数と出現確率

Primal Bossを倒すと得られる基礎ヒーロソウル数(HS)はHero Souls - Clicker Heroes JP Wikiによると、
{ \displaystyle
 HS = \left (\frac{\frac{level-100}{5}+4}{5}\right )^{1.3},
 }\tag{1}
らしいです。
Primal Bossの出現確率は(25+Atmanレベル)%の確率です。
また、100の倍数の階層では100%の確率で出現します。
基礎ヒーローソウル数と表記している理由は、実際はSolomonの効果が適用された値が最終的なヒーローソウル数となるからです。

基礎ヒーローソウル数の式の私的解釈

この基礎ヒーローソウル数(HS)の式は倒したボスの階層(level)を使って、計算しています。
式を解釈してみると、{ \frac{level-100}{5}}の部分は何体目のボスかを表しています。
したがって、階層levelのボスの番号iは、
{\displaystyle
 i = \frac{level-100}{5},
}
となります。
このとき、分母の5は5階層刻みでボスが出現することを表しています。

基礎ヒーローソウル数の式(1)を変形すると、i体目のボスの基礎ヒーローソウル数(HS^{base}_i)は
{ \displaystyle
 HS_i^{base} = \left (\frac{i+4}{5}\right )^{1.3},
 }\tag{2}
となります。
この式では、階層100のボスは0体目としています。
また、\frac{i+4}{5}はボス5体刻みで値がちょうど1増加することを示しています。
例えば、1体目のボスでは結果は1となり、6体目では2、11体目では3となります。
もちろん、5刻みの間のボスの時は計算された値は実数となります。

ここで、重要なポイントはそのボスの階層levelで基礎ヒーローソウル数が決まるのではなく、そのボスが何番目のボスなのかによって決まっていることです。
階層levelではなく、ボスの番号iに注目しようということです。
その方が計算にも都合が良いです。

Primal Bossの最終的なヒーローソウル数

今までは、Solomonの効果を考えない場合でした。
Solomonの効果を考慮すると、i番目のPrimal Bossから得られる最終的なヒーローソウル数(HS_i)は、
{ \displaystyle
 HS_i = \left \lfloor HS_i^{base} \times \left(1+\frac{S}{100} \right ) \right \rfloor,
 }\tag{3}
となります。
ここで、SはSolomonの倍率[%]です。

期待値の計算式

期待値は各ボスのヒーローソウル数と出現確率の積の和となります。
すなわち、得られるヒーローソウルの期待値(\overline{HS})は,
{ \displaystyle
 \overline{HS} = 1+\sum_{i=1}^{N}P_i HS_i,
 }\tag{5}
です。
最終的に到達する階層をLとすると,
倒すボスの総数Nは,
{ \displaystyle
 N = \left \lfloor \frac{L-100}{5} \right \rfloor,
 }\tag{6}
です。
また、Primal Bossの出現確率P_i
{ \displaystyle
 P_i = \begin{cases}
\frac{25+A}{100}&, i {\ \rm mod\ \ } 20 \neq 0 \\
1 &, i {\ \rm mod\ \ } 20 = 0
\end{cases},
 }\tag{7}
ですね。
AはAtmanのレベルです。
以上の流れで獲得ヒーローソウルの期待値を導出できました。

おまけ:Solomonの倍率の計算式

Solomonの倍率をSolomonのレベルL_sで表すとどのような式になるでしょうか。
おそらく、以下のような式になると思われます。
{ \displaystyle
 S = \sum_{l=1}^{L_s} u_l,
 }\tag{8}
{ \displaystyle
 u_l = \begin{cases}
5-\left \lfloor \frac{l}{20} \right \rfloor&, 1\leq l < 100 \\
1 &, l \geq 100
\end{cases},
 }\tag{9}