推しのブロマイドを使ったトレーディングカードゲームが出ると聞いて私がやることは1つだった

何枚引けば推しが揃うかの期待値を求めます。

はじめに

お久しぶりです、こりです

twitterでは今は苗字?みたいなのがついて「いのこり」になっています。

いつ変えたんだかは忘れました。 昨年9月の「遠足のレヴュー@北海道」でお便りを読んでいただけたとき、小山百代さんに「何に居残ってるんだろうね」って言われた覚えがあるのでその前後だと思います。

当時は、大学に年単位の居残りをしていました(あっ......)。春からは働いていますのでご安心を。

では本題に移ります。

推しのブロマイドを使ったトレーディングカードゲームが出るらしいよ〜〜〜!*1

やった〜〜〜!どんな写真が見られるのか楽しみ!!!

カードゲームをしない私でも、推しのくらいは揃えたい!!と思うものです。

するとここでいくつかの問題が出てきます。

1つ目はズバリお金の問題です。トレーディングカードゲーム(以下TCG)はランダムでカードが入っているため、「これだけ買えば必ず入っている」という限度がないです。いっぱい買えばそれだけ推しのカードも出やすいでしょうが資金には限りがあります。この問題の単純な解決法は、TCGの名の通り「トレーディング」です。他プレイヤーとカードを交換/譲渡することで欲しいカードを手に入れることが可能で、それがまた醍醐味とされています(知らんけど)。

2つ目はその「トレーディング」に関わる問題で、「友人が少ない」ことです。TCGをする友人が少なく、また同担の友人が多いため、トレーディングで推しを集めることは困難を極めると想像されます。

従って、最小限の枚数の購入によって、自力で推しを揃えたいと考えるのは自然なことでしょう。

そこで今回は、こちらの問題を定義しました。

 N 種類のカードが無限にあって、それぞれの種類は等しい確率で出るものとする。その中のきまった  M 種類のカードを揃えたい。カードを1枚ずつ引いていくとき、ちょうど  K 枚目で欲しかった  M 種類のカードが揃う確率はいくらか?」

この問題に対して私は2通りのアプローチ、すなわち ①ガチャシミュレーションによる統計的計算 ②高校数学による組み合わせと確率の解析的計算 により解を求めました。その結果、両者が一致することも確認しました。

そして動機だった「どれだけ引けば推しを揃えられるか?」という問題に、期待値として答えを与えることができました。その結果、マジで当たり前ですが「誰かと交換したほうがいいわね......」という結論に辿り着きました。*2

本記事は、同じ悩みを抱えるオタクのもとに届けばいいなという想い、そして「あわよくば、誰かがこの記事を見てトレーディングに応じてくださればいいな」という期待のもとに執筆します。

さて以下で計算過程の説明を行っていくのですが、「結局、何枚引けばhrkちゃんが揃うんや」とお急ぎの方は まとめまですっ飛ばしていただいて構いません。*3

問題への取り組み

今回の大目標は「どれだけ頑張れば推しが揃うか」の一点なので、 N,  M,  K といった一般の場合はそれなりにして、  N=56,  M=4 という特殊なケースのみを考えます。

対象とするTCGは、通常28種, パラレル28種, スペシャル3種の計59種類で構成されています。スペシャルは出現確率が低いので「出ない」ものとして、「残り56種が等確率で出る」との簡略化を行いました*4。そして推しのカードは通常28種中2種類、パラレル28種中2種類の計4種類であると仮定しています。これをパターンAとします。もう一方のパターンBは、「パラレルとは単に通常カードにホログラムが入っただけで、絵柄は一緒(だから4種類も揃える必要はない)」と仮定した場合です。このとき通常カードとパラレルカードは同一視できて、  N=28,  M=2 の場合を考えればよいことになります。

一応「予想」という形で、一般の  N,  M の場合の表式を提示しますが証明は行いません。

シミュレーションによる解法

ランダムに  1 \sim N の整数を重複ありで1つずつ生成し、記録していきます。この整数の組に  1 \sim M すべてが出現した時点で終了し、引いた枚数を記録します。これを1回のシミュレーションとします。シミュレーションを100万回行って、必要枚数の分布を近似的に求め、平均と分散を算出しました。

組合せ計算による解析的解法

 N 種類のうち目当ての  M 種類がちょうど  K 枚引いたところで揃う確率を  f_{N, M}(K) とします。面倒なので  N=56,  M=4 は当たり前に使うこととし、 f(K) と書きましょう。このとき

  •  K \lt 4 では, 明らかに  4 種類揃うはずがないので  f ( K ) = 0
  •  K = 4 のとき、欲しい全種類が順番自由で出なくてはならないので  f ( 4 ) = 4!/56^ 4

はすぐにわかります。一般の  K > 4 は、漸化的に考えると


\begin{aligned}
f ( K ) &= (K-1 枚目までにどれか3種類が揃っていて, 残り1種類がまだである確率) \times (K 枚目で残り1種類を引く確率) \\
&= (K-1 枚目までにどれか3種類が揃っていて, 残り1種類がまだである確率) \times 1/56
\end{aligned}

となります。このカッコ書きの確率を求めることが本解析のメインテーマとなります。 ここで新たな表記として、すべてのカードの種類の集合  U= \{ 1, 2, 3, \ldots , 56 \}, 推しカードの集合  S = \{ 1, 2, 3, 4\} を定義します。そして推しカードの部分集合を  T とし、 K 枚目までに  T は既に引いているが  T \backslash S は引けていない確率を  g_T(K) と表します。たとえば  T = \{ 1, 2 \} のとき  T \backslash S \{ 3, 4 \} となります。また空集合 \emptyset で表します。

このように表記することで、上のカッコ書きの確率は  g _ { \{ 1, 2, 3 \} } ( K-1 ) + g _ { \{ 2, 3, 4 \} } ( K-1 ) + g _ { \{ 3, 4, 1 \} } ( K-1 ) + g _ { \{ 4, 1, 2 \} } ( K-1 ) と表されます。また、カードの番号付けに意味はないので  4 \times g _ { \{ 1, 2, 3 \} } ( K-1 ) としても同じです。なので  T の要素数  t を用いて、 g _ { T= \{ 1, 2, 3 \} } ( K-1 ) = g _ {t=3} (K-1) という表記も使っていきます。

 4 種類揃えることを目指して、順に  0, 1, 2, 3 種類と集めていきましょう。 まず  t=0 は、目当ての4種類以外(= 52種類)が出ていいので

 g _ 0 (K) = (52/56) ^ K

です。

次に  t=1 は「  K 枚引いて  1 は当たったけど  2, 3, 4 が当たらない」確率であり、


\begin{aligned}
g _ 1 (K) = g _ {\{ 1\} } (K) &= (1と52種類, 計53種類が出ていい) - (1も除いた52種類が出ていい) \\
&= (53/56) ^ K - g _ 0 (K) \\
&= (53/56) ^ K - (52/56) ^ K
\end{aligned}

となります。

 t=2 以降も同様にやっていくと、


\begin{aligned}
g _ 2 (K) &= g _ { \{ 1, 2 \} }(K) \\
&= (54/56) ^ K - g _ { \{ 1 \} }(K) - g _ { \{ 2 \} }(K) - g _ { \emptyset }(K) \\
&= (54/56) ^ K - 2 \cdot g _ 1 (K) - g _ 0 (K) \\
&= (54/56) ^ K - 2 \cdot (53/56) ^ K + (52/56) ^ K, \\
\\
g _ 3 (K) &= (55/56) ^ K - g _ { \{ 1, 2 \} }(K) - g _ { \{ 2, 3 \} }(K) - g _ { \{ 3, 1 \} }(K)
 - g _ { \{ 1 \} }(K) - g _ { \{ 2 \} }(K) - g _ { \{ 3 \} }(K) - g _ { \emptyset }(K) \\
&= (55/56) ^ K - 3 \cdot g _ 2 ( K) - 3 \cdot g _ 1 ( K) - g _ 0 ( K) \\
&= (55/56) ^ K - 3 \cdot (54/56) ^ K + 3 \cdot (53/56) ^ K - (52/56) ^ K
\end{aligned}

となるので、求めたい確率  f(K)


f (K) = \frac{4}{56} \bigl[ (55/56) ^ { K-1 } - 3 \cdot (54/56) ^  { K-1 } + 3 \cdot (53/56) ^  { K-1 } - (52/56) ^  { K-1 } \bigr]

であることがわかりました。

また  g _ t (K) の表式に二項係数が現れることから、一般の  N,  M について  f _ {N, M} (K)


f _ {N, M} (K) = \frac{M}{N} 
\sum_{i=0}^{M-1} {}_{M-1}{\rm C}_{i}(-1)^i\bigl(\frac{N - i-1}{N}\bigr)^{k-1}

と表せると予想できます。残念ながらこの予想が正しいかは確認できていないです。

結果を確認する:パターンA

それでは結果をプロットして確認しましょう。 f:id:Callinx2You:20211205205001j:plain

図は、56種類が等しい確率で出る無限枚のカードから、欲しい4種類が出るまで引く枚数の確率を示しています。シミュレーション結果が驚くほど理論値と整合的でした。 100万回もやればそうかもしれん。

この図からピークは 80枚 前後であることがわかります。 また解析解を用いた枚数の平均・分散の計算により、 116.7 \pm 65.9 枚 ( 1 \sigma) がもっともらしいとわかりました。

 f (K) を累積した関数  F(K) ──実は  g _ 4 (K)に等しい── を調べると、

  • 103枚(6パック)引けば 50 % の確率で推しが揃う
  • 162枚(9パック)引けば 80 % の確率で推しが揃う
  • 333枚(19パック)引けば 99 % の確率で推しが揃う

ことがわかりました。上限である30パック540枚を買うと、99.97 %の確率で推しが揃います。ヤムチャしやがって...

結果を確認する:パターンB

次に示す結果は「パラレルカードと通常カードが同じ絵柄で、片方さえあれば満足できる場合」です。

f:id:Callinx2You:20211205213510j:plain

この場合は、

  • 35枚(2パック)引けば 50 % の確率で推しが揃う
  • 62枚(4パック)引けば 80 % の確率で推しが揃う
  • 146枚(8パック)引けば 99 % の確率で推しが揃う

という結果です。

大前提である「パターンAか」「パターンBか」によって大きく結果が違いますね。

まとめ、兼取り扱いについて

「パラレルカードと通常カードが別の絵柄で、両方揃えたい」場合、

  • 103枚(6パック)引けば 50 % の確率で推しが揃う
  • 162枚(9パック)引けば 80 % の確率で推しが揃う
  • 333枚(19パック)引けば 99 % の確率で推しが揃う

「パラレルカードと通常カードが同じ絵柄で、片方さえあれば満足できる」場合、

  • 35枚(2パック)引けば 50 % の確率で推しが揃う
  • 62枚(4パック)引けば 80 % の確率で推しが揃う
  • 146枚(8パック)引けば 99 % の確率で推しが揃う

ことが予想されました。

これらの結果をどう解釈し、購買行動に結びつけるかは提言しません。 個人的には「誰かと交換したほうがいいわね......」と思いました。 3人で3パックずつくらいかな...

また、これは数学モデルであって、現実の事象を再現するものではないため参考に留めていただきますようお願いします。

*1:文字を推しカラー(黄色)にしたかったのですが、めっちゃ見にくかったのでやめました。緑は推しキャラの髪色です。

*2:世界初のトレーディングカードゲームマジック・ザ・ギャザリング」の生みの親は組合せ数学でPh.D.を取った数学者らしく、TCGでこんな計算をしてる自分の「掌で踊らされてる」感がすごかったです。

*3:ところで頑なに伏せ字にしているのは、記事の性質上、当該TCG関係者各位にご迷惑でないかと考えたためです。

*4:もしスペシャルカードにも推しが出るなら本気で再計算します。