装飾品コンプの確率分布の最頻や平均(期待値)を計算していきます.
前提条件
滅日を周回するとして、 封じられた珠、刻まれた珠、太古の珠の3種類から4スロットを0個の状態からコンプリートするということを考えます.
滅日を周し、珠が累計個でたときにコンプリートしたとします.は1周ででる珠の個数期待値とします.
つまり、周すると、珠が個数得られます.
また、挑戦・回避のような装飾品は5個でコンプとするものを弱コンプ、7個でコンプとするものを強コンプと定義します.
報酬期待値
1周したときの報酬の期待値をまず計算していきます.滅日の珠に限っていえば、報酬内容確定確定枠数が1つ(封じられた珠3個)、報酬確定枠数が3つ、抽選確率22/32で報酬抽選枠が最大4つまで増えるようです.
つまり報酬枠の期待値というのは、
となっているようです.このうち、1枠分は封じられた珠3つで固定されていて、残りの4.70851...枠で各3種の珠が確率ででてきます.
封じられた珠
封じられた珠は1枠に対して、8%の確率で1つ、1%の確率で3つでるようです.すなわち、1周で得られる期待値は
となります.
刻まれた珠
こちらは1枠に対して、41%の確率で1つでるようなので、
となります.
太古の珠
こちらは1枠に対して、50%の確率で1つでるようで、
となります.
したがって、
です.
排出平均確率
このように珠の種類が多く、確率もバラバラである場合計算が非常に煩雑になってしまうので、珠とそこからの排出確率を重みづけして平均化していきます.
珠から装飾品が排出される確率をと置きます.珠の排出期待値で重みづけ平均化し、それを装飾品の排出確率とします.
こうすることで、珠の種類数というのを除外して考えることができてモデルを単純化できます.(両辺にをかければ一周での獲得数期待値となる)
例えば火炎珠II【4】は封じられた珠から1.11%、刻まれた珠から0.75%、太古の珠から0.28%で排出されます.なので、平均化された仮想珠から、
の確率で排出されるとみなせます.一周での平均化仮想珠の排出数期待値は個なので、一周あたりの火炎珠II獲得数期待値は個となります.
多項分布
装飾品は種類あり、ラストに揃う装飾品をとラベリングします.個目の時点でラストの装飾品以外(装飾品)はコンプしていてがラスト1個手前までコンプしている確率を (quasi complete)とおき、個目でコンプするということを考えます.
装飾品が個目でコンプする確率および最終的に求めたい装飾品が個数目ではじめてコンプする確率は、
と表せます.に関する無限和をとれば全事象を表すので、とおいて、
を満たします.
装飾品、のコンプ個数を、とおくと、というのは、ラスト一種類のは個ちょうど、それ以外のは少なくとも個でて、残りの枠はが外れる確率といえます.
この少なくとも...という条件が組み合わせ数を爆発的に増やしています.これを計算するには余事象を考えると組み合わせ数はぐっと抑えることができるのですが、のちでやりたいことに合わせて、愚直に定式化していきます.
自然数(0を含む)に対して、その順序付きの分割(結合)を考えます.成分はでもよいとし、成分も含めた項数はとなります.
は各装飾品がコンプ個数から余剰に出た個数を表していて、それぞれ個でたということです.は余剰個数の総和を表しています.
この順序付き分割全体をとおきます.
求める確率というのは片端固定版の多項分布の総組み合わせの和です.
まず、とおいておきます.というのが1~3スロ系の装飾品が出る確率に対応しています.そして、次の関数を定義します.
そうすると、
と書き表すことができます.
正規分布近似
ここで、個の珠を引いたとき、が個ちょうどでる確率 (single quasi complete)を計算してみます.これはとても簡単で、
とかけます.この単純なものから多項分布の性質を見出してみます.
二項分布であるは、が十分大きければ正規分布に近似できるので、
として扱えます.
対象となる装飾品が2種類の場合(2次元多項分布)の簡易版のグラフをdesmosで描きました.パラメータを動かすことで確率の変動が視覚的にわかりやすいです.
www.desmos.com
最長時間近似
※最長時間近似という言葉は造語です.
上のdesmosでいろいろパラメータをいじると見えてくるのが、だったり、だったりすると、最終的な確率分布に2の方は殆ど寄与せず、単純な二項分布として近似できるということがわかります.すなわち、が十分大きいとき、相対的に排出確率が高く、コンプ個数が少ないものは外れ枠に圧縮し、考えるべき変数を減らして近似できるというわけです.2種類以上ある場合には、各一種類のみに着目したときのコンプまでの時間期待値で比較するのがよさそうです.
近似の仕方としては、まずコンプ時間期待値の最大値を求めます.その最大となる装飾品をとラベリングします.あるを定めて、を満たす装飾品を準最長時間としてグルーピングします.逆に、それを満たさないもの(一時的にそれらをとラベリングします)は外れ枠として圧縮されます.すなわち、は1~3スロ系のものと同一視してと再定義されます.
を小さくすればするほど近似精度が上がりますが準最長時間グループに分類される種類数が増えて計算コストが上がります.今回の装飾品の例ではで十分ぽそうです.
一般化クーポンコレクター問題
最長・準最長時間に分類される種類数とそれらのコンプ個数が極めて小さければ、後述する遷移確率行列を考えて計算するのも現実的ですが例えば強コンプの場合で具体的に計算してみると、最長時間が5329.13となり、それらは挑戦・回避、挑戦・体術、全開・回避、全開・体術、底力・回避、底力・体術の6つです.として準最長時間に分類されるものは(最長も含め)102種類となります.準最長時間を無視して(程度に相当)最長時間のみで計算しようとしても、たったの6種類だけで状態数は個となります.
弱コンプの場合でも、最長時間が3806.52で、挑戦・回避などの22種類、の準最長まで含めると114種類あります.最長時間だけで状態数個です.とはいえ、最長時間だけをみれば対称性があることが多いので工夫すれば計算できる可能性はあります.
等確率・等コンプ個数のものが複数種類あるだけのような状況であれば、それは一般化クーポンコレクター問題(GCCP)のSSC(the Single Slippage Configuration)モデルというものに相当します.
これはある程度研究されている内容ですが、確率分布を計算できているものは見つかりませんでした.
GCCPのSSCを考えるものとして、「当たり」が種類あって、排出確率がそれぞれ、コンプ個数がとします.そうすると、コンプ確率というのは、
の0を含む順序付き分割とその全体、外れ確率をおいて、
とすると、
と書き表すことができます.
最後の式で最も大変なのは
の部分です.簡単のため、はの倍数、つまりであるとき(等分配)を考えてみます.
すべてのとき、分母の部分は最小となるはずです.
ここから次に大きいのは1個分ずらしたもので、
これは通りあります.
次は2個分ずらすものが考えられます.
これらは通り、
これらは通りあります.
これを計算していくのは骨が折れるので、に、項数で順序付きの非負整数の分割数をかけたものを近似値とするとよさそうです.
を成分を含んで個の項数に分割する方法は、個のものと個の仕切りを一列に並べる重複組み合わせ、すなわち個のものから個を選ぶ組み合わせなので、 通りです.したがって、
と近似することにします.対数つまり情報量に直しておきます.
スターリングの近似式を使って、
しかし、最後の項はどうしようもありません.なにかいい現実的にできる計算方法があればいいのですが.
逐次合成
先ほどのdesmosをヒントに、1種のものから同種のものが2つあるものへの合成(変換)ができると、それを逐次的に繰り返すことで2の累乗数の確率分布が得られそうです.
www.desmos.com
この青い点線のもの(以下)から赤い実線のグラフ()をの形で近似的でもいいので作ることが目標です.
それぞれの極大値や幅を求めて比較というのができると良かったのですが、のほうがあまりにも厳しすぎたのでdesmosで性質を探ってみると、おおよそ、青のコンプの時間期待値と赤の極大値が一致しています.完全に一致しているというわけではなく、同じようなずれ方をしているということで、オーダーまでずれるということはなさそうです.
数学としてはこんなやり方ではだめですが、先に進めずに結果が得られないというのも面白くないのでとりあえずこれを利用してみます.
は極大となるのほうは(微分などで)簡単に求められて、
です.は小さいので-1次近似しておきました.がと同じ関数形で近似できているとすると、ここの点がのほうのコンプ期待値の点と近しいというわけです.
関数をみると、のほうをずらすと幅が変わってしまうので、グラフ的に幅自体はそこまで変わってないことをみると、のほうを書き直せるとよさそうなので、逐次的に
としていくと近しい関数の概形が得られることが期待できます.
最長時間の装飾品が種あったとき、上述のようにを逐次的に計算し、回目の値による確率分布を近似値として最終的に用いていきます.
つまり、関数
を定め、回反復合成関数によって、
とかけます.
確率分布の概形
弱コンプで考えていきます.データを入力し、装飾品の種類数は種で、全コンプ個数は個(つまりコンプ時間の理論値)、単一の最長時間は排出平均確率でコンプ個数5個の個目で、このようなものは種類ありました.
、で、はとの間なのでとしておきます.
コンプの期待値は個、すなわち周、最頻値は個の周です.様々な雑な近似により実際は結構ずれると思いますが、ざっくり1000周前後でコンプリートするということがわかりました.
www.desmos.com
言い換えれば「平均的には」、約1000周すれば22種類ある攻撃IIと同レアのものうち、どれか1つは11個ほど揃うくらいになっていて、なおかつ滅日から排出される4スロット装飾品はすべて揃っているということになります.戦闘時間2分、帰還まで1分、ロードや出発準備で1分とすると、67時間はかかります.
上位1%くらいの人は約500周までにコンプ可能で、下位1%くらいの人はコンプするのに約2000周以上を要します.※あくまで滅日のみから得られるものを考慮した場合で、他クエストに行っている場合は当然その分緩和されます.
計算に使用したcsvファイルはこちら(2のほうが弱コンプです).入力はMinaiさんに手伝ってもらいました.
https://drive.google.com/drive/folders/1LmCwuds7NVm_p7rVB9BVp0cs8SXe6oRJ?usp=drive_link
実は強コンプのほうで同じ計算をしてみると、こちらのほうが早く揃いやすいという結果になってしまっています.これは最長時間のみを考慮した場合、強コンプはたったの7種類しかなく、準最長の寄与がわりとあるのにも関わらず無視してしまっているからだと思われます(つまりとしているのが問題).
以下おまけ
マルコフ連鎖
別の考え方として、各装飾品の所持状況(各コンプ個数が最大値)を確率過程とするとマルコフ連鎖とみなせます.
全装飾品を設定したコンプリート個数に到達した状態が吸収状態となっています.
装飾品のコンプ個数をとすると、全状態の総数というのは所持数0個ということも考慮すると、通りになります.
の遷移確率行列を考えることで、珠個目で初期状態から吸収状態になる確率を計算できます.
計算できます、とはいいましたが293種類の装飾品で一般的なコンプ個数を設定した場合、状態数は通りにもなるのでサイズの行列を計算する必要になり、人間はもちろんコンピュータでも不可能でしょう.
そこで先ほどの最長時間近似が効いてきて、この再定義によって種類数が2~3種類程度に圧縮されればぐっと行列サイズを下げて現実的に計算することができます.
しかし、5種類以上にもなってくると行列サイズが数千以上になっていき計算時間がとても長くなるか、強制終了してしまいます.
とはいえ遷移確率行列の形だけでも記していこうとは思います.
まず、を満たす状態を考えます(さっきまでとは異なる定義であることに注意してください).
同じでも内容が異なる状態への遷移する確率はいずれかの装飾品を減らす必要があって、そのような確率は0(装飾品が勝手に消えることはない)です.
もちろん、以下のいかなる状態への遷移も装飾品が減ることがないことから0です.
一方、状態がかわらない、つまり4スロ系の装飾品の所持状況が変わらないことはあり、その自己遷移の確率はコンプ個数に達している装飾品の排出確率の和
を用いて、と書けます.そして、から装飾品がひとつ増えた状態への遷移確率というのがなわけです.
遷移確率行列の成分は、成分はというわけです.
ある行を取り出すとこんな感じです(行和は確率の和なので1になる).
コンプした状態は吸収状態なので自己遷移確率が(ここを成分とします)で、他成分は0です.
このような行を個並べることで遷移確率行列ができます.その遷移確率行列を乗して初期状態の行の最後の列の値が珠個目で初期状態から吸収状態になる確率になります.