「グリモア~私立グリモワール魔法学園~」のメダルチャレンジにおける確率分布 その1

お久しぶりです。ほげでございます。

スマートフォンのアプリゲーム「グリモア」では頻繁にイベントが開催されており、主な報酬の形としてランキング報酬の他にメダルチャレンジというものが存在します。
メダルチャレンジとは、イベント中で特定の条件を満たすと獲得できる「メダル」を一定数消費することで引くことのできるクジ引きシステムです。
以下、クジを引くことを抽選と呼ぶことにします。

メダルチャレンジの概要

メダルチャレンジには最大5つの"シート"(クジ引き箱に相当する)が存在し、各シートに多数のアイテム(クジ)が入っています。
1回の抽選で獲得できるアイテムは1つで、獲得したアイテムはそのシートから消滅します。すなわち、100個のアイテムが存在するシートでは最大100回の抽選をすることができます。以下、 n 番目のシートをシート  n と表記します。

1回目の抽選ではシート  1 からしか引くことが出来ません。
しかし、各シートには "当たり" アイテムが唯1つ存在し、シート  1 における抽選で当たりアイテムを獲得すると、抽選するシートを任意のタイミングでシート  2 へ切り替えることが可能になります。
この際、シート  1 で抽選し続けることもできますが、シート  1 のアイテムが無くなり次第、自動的に抽選はシート  2 へ切り替わります。

同様に、シート  2 において唯一の当たりアイテムを獲得するかアイテムを引き切ると、シート  3 への移行が可能になります。
なお、最終シートの当たりアイテムを獲得して移行を実行したとき、シート  1 へ戻ることはなく、再び全アイテムの復活した最終シートを引くことになります。

シート制覇に必要な抽選回数の確率分布(シート: 2枚)

・変数設定

ここからは、メダルチャレンジにおいて最終シートの当たりアイテムを獲得するまでに必要な回数の確率分布を考察していきます。

一般的な話をする前に、まずは仮にシート枚数を  2とし、それぞれ  S_1,\ S_2 と名付けます。また、それぞれのシート内のアイテム数を  g_1,\ g_2 とします。
このとき、最終シート(シート  2 )の当たりアイテムを引くまでに必要な回数の最小値、最大値はそれぞれ  2 回,  g_1+g_2 回となります。
前者は  S_1,\ S_2 共に一発で当たりアイテムを引き当てた場合、後者は  S_1,\ S_2 両方で最後に当たりアイテムを引き当てた場合です。

ここで、確率変数  X_1,\ X_2 をそれぞれ  S_1,\ S_2 において当たりを引くまでに抽選した回数として定義し、 X = X_1 + X_2 とします。また、 P を確率とし、 P(X_1 = x_1 \land X_2 = x_2) P(x_1,\ x_2) と略記します。この記事ではこの  X の確率分布を求めていきます。

なおここでは単純化のため、抽選で当たりを引いたときは直ちに次のシートへ切り替えることとします。

・目標設定

目標は、確率  P(X = k) k を用いて表すことです。 P(X = k) は、最終シートの当たりアイテムを  k 回目で獲得する確率を表し、 k は前述の通り  (2 \le k \le g_1+g_2) を満たします。
この求めたい確率を単純に式に表すと、

 {
    \displaystyle
    \begin{eqnarray*}
        P(X = k) &=& P(X_1 + X_2 = k) \\
                 &=& \sum_{\substack{1 \le x_1 \le g_1 \\ 1 \le x_2 \le g_2 \\ x_1 + x_2 = k}}P(x_1,\ x_2)
    \end{eqnarray*}
}

となります。

この  P(x_1,\ x_2) は、 S_1 において  x_1 回目に当たりアイテムを引き、 S_2 において  x_2 回目に当たりアイテムを引く確率を表しますが、この確率は  k に依存しない定数になります。実際、

 {
    \displaystyle
    \begin{eqnarray*}
        P(x_1,\ x_2) &=& P(X_1 = x_1 \land X_2 = x_2) \\
                     &=& \frac{g_1-1}{g_1} \frac{g_1-2}{g_1-1} \cdots \frac{g_1-(x_1-1)}{g_1-(x_1-2)} \frac{1}{g_1-(x_1-1)} \cdot \\
                     & & \ \ \frac{g_2-1}{g_2} \frac{g_2-2}{g_2-1} \cdots \frac{g_2-(x_2-1)}{g_2-(x_2-2)} \frac{1}{g_2-(x_2-1)} \\
                     &=& \frac{1}{g_1 g_2}
    \end{eqnarray*}
}

であるから、各  k = 2,\ 3,\ ...,\ g_1+g_2 に対し、

 {
    \displaystyle
    C_k = \sum_{\substack{1 \le x_1 \le g_1 \\ 1 \le x_2 \le g_2 \\ x_1 + x_2 = k}} 1
}

とおけば、

 {
    \displaystyle
    P(X = k) = \frac{C_k}{g_1 g_2}
}

と書けます。 g_1,\ g_2 は既知の定数なので、 C_k k で表すことができれば  P(X) の確率分布を知ることができますね。

・全確率

ここで、 P(X) の全確率が  1 になることを確認しておきます。
これは  \sum_{k = 2}^{g_1 + g_2} {C_k}/{(g_1 g_2)} = 1 が成り立つことで確認できますが、

 {
    \displaystyle
    \begin{eqnarray*}
       \sum_{k = 2}^{g_1 + g_2} C_k &=& \sum_{k = 2}^{g_1 + g_2} \sum_{\substack{1 \le x_1 \le g_1 \\ 1 \le x_2 \le g_2 \\ x_1 + x_2 = k}} 1 \\
                                    &=& \sum_{\substack{1 \le x_1 \le g_1 \\ 1 \le x_2 \le g_2}} 1 \\
                                    &=& g_1 g_2
    \end{eqnarray*}
}

となるので、確かに全確率は  1 になっています。

・Ckを求める

 C_k は、定義より「 1 \le x_1 \le g_1,\ 1 \le x_2 \le g_2,\ x_1 + x_2 = k を全て満たす自然数の組  (x_1,\ x_2) の総数」を意味しますが、これを「 0 \le x_1 \le g_1 - 1,\  0 \le x_2 \le g_2 - 1,\  x_1 + x_2 = k - 2 を全て満たす整数の組  (x_1,\ x_2) の総数」と読み替えます。

これはさらに、「ある物質  x_1,\ x_2 があり、 x_1 g_1 - 1 個、 x_2 g_2 - 1 個入っている箱の中から  k - 2 個取り出すときの個数の組み合わせの総数」とも読み替えることができます。

よって、 C_k

 
    f(x) = \left(1 + x + x^2 + ... + x^{g_1 - 1} \right) \left(1 + x + x^2 + ... + x^{g_2 - 1} \right)

を展開したときの  x^{k - 2} の係数になります。

このまま展開しても良いですが、今後シート数を一般化することや、 C_k k の閉じた式で表したいということを踏まえて、計算しやすい形へ  f(x) を式変形します。

まず、

 
    \displaystyle
    \begin{eqnarray*}
        f(x) &=& \frac{1-x^{g_1}}{1-x} \frac{1-x^{g_2}}{1-x} \\
             &=& \frac{1}{(1-x)^2} (1-x^{g_1})(1-x^{g_2})\ \ \ (|x| < 1)
    \end{eqnarray*}

であり、 1/(1-x)^2マクローリン展開

 {
    \displaystyle
    \frac{1}{(1-x)^2} = 1 + 2x + 3x^2 + 4x^3 + ...
}

です。よって、 a_n = n + 1 とおけば、 f(x) |x| < 1 の範囲で

 {
    \displaystyle
    \begin{eqnarray*}
        f(x) &=& \left( \sum_{n=0}^{\infty}{a_n x^n} \right) (1-x^{g_1})(1-x^{g_2}) \\
             &=& \left( \sum_{n=0}^{\infty}{a_n x^n} \right) (1 - x^{g_1} - x^{g_2} + x^{g_1 + g_2})
    \end{eqnarray*}
}

と変形できます。ここまで来れば、 x^{k - 2} の係数の計算は容易です。

・具体例 (g1=5, g2=7)

ここからは具体例として  g_1 = 5,\ g_2 = 7 を与え、 C_k の値を求めます。

これらの値を上の式へ代入すると、

 {
    \displaystyle
    \begin{eqnarray*}
        f(x) &=& \left( \sum_{n=0}^{\infty}{a_n x^n} \right) (1-x^5)(1-x^7) \\
             &=& \left( \sum_{n=0}^{\infty}{a_n x^n} \right) (1 - x^5 - x^7 + x^{12})
    \end{eqnarray*}
}

が得られます。よって、 C_k の値は以下のように3つの場合分けで計算できます。


 {\rm (i)}\ 0 \le k - 2 \lt 5 、すなわち  k = 2,\ 3,\ 4,\ 5,\ 6 のとき、

 {
    \displaystyle
    \begin{eqnarray*}
        C_k &=& \left( f(x)\ を展開したときの\ x^{k-2}\ の係数 \right) \\
            &=& \left( \left( \sum_{n=0}^{12}{a_n x^n} \right) \cdot 1\ を展開したときの\ x^{k-2}\ の係数 \right) \\
            &=& \left( a_{k-2}x^{k-2}\ の\ x^{k-2}\ の係数 \right) \\
            &=& a_{k-2} \\
            &=& k - 1. \\
    \end{eqnarray*}
}


 {\rm (ii)}\ 5 \le k - 2 \lt 7 、すなわち  k = 7,\ 8 のとき、

 {
    \displaystyle
    \begin{eqnarray*}
        C_k &=& \left( f(x)\ を展開したときの\ x^{k-2}\ の係数 \right) \\
            &=& \left( \left( \sum_{n=0}^{12}{a_n x^n} \right)(1 - x^5)\ を展開したときの\ x^{k-2}\ の係数 \right) \\
            &=& \left( (a_{k-2}x^{k-2}-a_{k-7}x^{k-7}x^5)\ の\ x^{k-2}\ の係数 \right) \\
            &=& a_{k-2} - a_{k-7} \\
            &=& (k - 1) - (k - 6) \\
            &=& 5. \\
    \end{eqnarray*}
}


 {\rm (iii)}\ 7 \le k - 2 < 12 かつ  k \le 12 、すなわち  k = 9,\ 10,\ 11,\ 12 のとき、

 {
    \displaystyle
    \begin{eqnarray*}
        C_k &=& \left( f(x)\ を展開したときの\ x^{k-2}\ の係数 \right) \\
            &=& \left( \left( \sum_{n=0}^{12}{a_n x^n} \right)(1 - x^5 - x^7)\ を展開したときの\ x^{k-2}\ の係数 \right) \\
            &=& \left( (a_{k-2}x^{k-2}-a_{k-7}x^{k-7}x^5-a_{k-9}x^{k-9}x^7)\ の\ x^{k-2}\ の係数 \right) \\
            &=& a_{k-2} - a_{k-7} - a_{k-9} \\
            &=& 5 - (k - 8) \\
            &=& 13 - k. \\
    \end{eqnarray*}
}


したがって、以上の場合分けによって求めた  C_k を用いれば、 g_1 = 5,\ g_2 = 7 の下で

 {
    \displaystyle
        P(X = k) = 
            \begin{cases}
                (k - 1) / {35}\ \ \ & ( k = 2,\ 3,\ 4,\ 5,\ 6) \\
                5 / {35}\ \ \ & ( k = 7,\ 8) \\
                (13 - k) / {35}\ \ \ & ( k = 9,\ 10,\ 11,\ 12)
            \end{cases}
}

となり、最終シートの当たりアイテムを  k 回目で獲得する確率が求められました。

 k 2 から  12 まで動くときの分子、すなわち  35 \cdot P(X = k) の値を列挙すると  {1,\ 2,\ 3,\ 4,\ 5,\ 5,\ 5,\ 4,\ 3,\ 2,\ 1} となります!対称的で非常に美しい!

・次回予告っ!

次回の記事は、シートの枚数を  n 枚へ一般化し、平均(分散も?)を求めていきます。

次回: グリモア~(略)~」のメダルチャレンジにおける確率分布 その2(作成中)