皆さん、こんにちは。
皆さんはグッズ集めをしてますか?私自身、学生時代ちょうど「けいおん」が流行してた時期に、映画の特典になるキーホルダー5種類をコンプしようとして何度も映画館に足を運んだ経験があります(下の写真が戦利品)。
このように何種類かあるグッズがあったとき、その全部をコンプしようとすると、何回買わないといけないのか、気になりませんか?
そこで今回は、このような「コンプガチャ」で、グッズ・アイテムをフルコンプするのに必要な購入回数を数学的に考察していきたいと思います。
1. 5種類のアイテムをフルコンプする場合 ~「五等分の花嫁」を例に~
1-0. 問題設定
まずは、全部で5種類あるグッズの購入について考えてみましょう。題材として、近年の流行に合わせ、漫画アニメ作品「五等分の花嫁」の、中野5姉妹のキーホルダーを採用してみます。
大学入試風に問題設定をすると下のようになります。
この問題は、高校数学で十分に解くことができ、東大あたりの最難関大学で出題されてても全然不思議じゃありません。風太郎なら余裕で解けるはずです。
(1)では購入回数kの確率分布を、(2)ではその累積確率分布、(3)では購入回数の期待値Nを順に計算していきますので、ぜひチャレンジしてみてください。
1-1. (1)購入回数kの確率分布
まず、「購入回数がk回になる」とはどういう状況なのかを考えてみます。
最後の購入において最後の1人を引き当てれば終了するので、その直前までに既に4人を持っていることになります。つまり、
「k-1回目までに4人を引き当てていて、かつk回目に最後の5人目を引き当てる」
と言い換えられます。このような購入の仕方の場合の数を調べて、それをすべての買い方5^k通りで割ってあげればp(k)が求まりそうです。よって、この(1)の主眼は、
「『k-1回目までに4人を引き当てていて、かつk回目に最後の5人目を引き当てる』ような購入の仕方の場合の数を調べる」となります。
5人は毎回等確率で買われるので、最後のk回目に「三玖」が買われる、としても一般性を失いません。この前提で場合の数を調べ、最後に5倍すればOKです。
(※最後の1人を三玖にしたのは、単なる個人的趣味です笑)
さて、そうなるとk-1回目までに、「三玖」以外の4人分は全て最低一回は買われていることになります。そのような買い方について考えてみましょう。
数学的に考えやすくするため、買ったキーホルダーを順に横一列に並べる順列を考えてみます。
この順列で想定できるパターンは、
1. ちょうど1人だけ含まれている(a通り)
2. ちょうど2人だけ含まれている(b通り)
3. ちょうど3人だけ含まれている(c通り)
4. ちょうど4人だけ含まれている(d通り)
の4種類であり、今回調べたい場合の数はdです。
これら全部の合計が4^(k-1)通りなので、
でdが計算できますから、より調べやすいa,b,cを求めます。
aについては、全部「一花」、全部「二乃」、全部「四葉」、全部「五月」の計4パターンなので、a=4です。これは簡単ですね。
bについて。一例として、「一花」と「二乃」だけが買われる状況を考えると、場合の数は次のようになります。
1回買うごとに2通りの可能性がありますが、そこから全部が「一花」、全部が「二乃」になる2パターンを除いているという理屈です。
ここで、買われる2人(上記では「一花」と「二乃」)の選び方は、4C2 =6通りあるので、この分だけかけてあげればbになります。
cについて。一例として「一花」と「二乃」と「四葉」の3人が買われる状況を考えると、その場合の数は下のように「3人以内」ー「ちょうど2人」ー「ちょうど1人」で求まります。
この時、買われない1人(上記では「五月」)の選び方が4通りなので、それをかけてあげればcになります。
以上から、求めたかった場合の数dは、
と求まります。
冒頭で説明した通り、最後に買われるのが「三玖」以外の「一花」「二乃」「四葉」「五月」のいずれかであっても全く同様なので、結局、
「『k-1回目までに4人を引き当てていて、かつk回目に最後の5人目を引き当てる』ような購入の仕方の場合の数」
は、5dです。これを5^kで割ればp(k)になるので、購入回数がk回になる確率p(k)は、
と求まりました!グラフにすると下のような感じです。
1-2. (2)購入回数kの累積確率分布
購入回数がk回以内になる確率q(k)は、「購入回数が5回になる確率」、「購入回数が6回になる確率」、・・・、「購入回数がk回になる確率」をすべて足せば求まるので、等比数列の和を使えばいいですね。計算すると下のようになります。
グラフにすると下のようになります。
こうしてみると、30回くらいまで買えば、ほぼほぼ100%コンプできることが分かります。
1-3. (3)購入回数kの期待値
kの期待値Nを定義通りに計算すると、「等差数列×等比数列」の形の無限級数が4つ登場することが想定されます。
この部分を一般化して
と書くことにすればNの計算式は次のようになります。
このf(r)をまずは計算しないことにはどうしようもないです。
このタイプの和は、公比をかけて辺々引くというのが定番解法で、いったん和を「無限和」ではなく「k=nまでの有限和」で考えてあげると、
次のように計算でき、
最後にnを∞に飛ばせば、
となります。
今回はrが
の形に限定されているので、予めその形でf(r)を計算しておくと、
となります。
以上から期待値Nを計算していくと、
と求まりました。大体11,12回といったところです。
ただ、上のq(k)のグラフを考えると、k=11,12では、q(11)=60.6%, q(12)=67.8%なので、期待値の回数だけ買ってもコンプできる確率が6割ちょっとと、少し心許ないですね。
なので期待値は回数を少なめに見積もっているため、実際にはもっと多く買わないといけないことに留意が必要です、
2. n種類のグッズをフルコンプする場合
以上は、5種類のグッズのガチャについての考察でしたが、一般にn種類のグッズのガチャでは購入回数の期待値はどうなるのか?それについて考えていきます。
(※ここでは確率を計算することが困難なため、期待値だけ考えます)
原理的には、5種類の場合の例のように「場合の数を調べる→確率→期待値」と計算するわけですが、一般のn種類となると、場合の数の計算が困難です。
というわけで、期待値を計算する発想を変えてみます。
まず、手元にk-1種類揃っているとします。そこからk種類目を手に入れるためにXk回だけかかると考え、このXkの期待値E(Xk)を考えることにします。(k=1,2,・・・,n)
「このE(Xk)を積み上げた合計が、全体の回数Xの期待値E(X)になる」と発想を変えるのです。
Xk =mとなるとき、k-1種類持ってる状態からm-1回ガチャを回して失敗し、m回目でk種類目をゲットすればよいので、その確率P(Xk = m)は,
となります。ここから期待値E(Xk)が下のように計算できます。
あとは、これの合計が全体の回数の期待値E(x)になるので、
と求まります。とてもシンプルな式になりました。
n=5の場合の期待値Nが137/12でしたが、これはこの式を満たしています。
※この値を計算するPythonプログラム(下の図ではn=1000まで計算)を作りましたので、参考までに。
この期待値をnで割ったものは、いわゆる「調和級数」というやつで、n→∞で発散することで有名です1+1/2+1/3+1/4+・・・=? - ちょぴん先生の数学部屋 (hatenablog.com)。
実際にグラフにすると下のようになります。
このように、種類が増えれば増えるほど必要な購入回数は増えていき、100種類ともなると、その5倍の500回以上(実際にはもっと)ガチャを回さないといけないことになります。
また、調和級数はnが十分大きいところではlog(n)+γで近似できるので(詳しくはこちらの記事でオイラー=マスケローニ定数の存在証明 - ちょぴん先生の数学部屋 (hatenablog.com) )、期待値は、
と近似できます。
もっとラフに近似(オイラー=マスケローニ定数γを省略する)すると、期待値はn*log(n)で近似できることになります。
それぞれグラフにすると下のようになり、γがなくても十分傾向はトレースできており、γを加えるとほぼほぼ重なることが見て取れます。
<期待値をn*log(n)で近似した場合>
<期待値をn*{log(n)+γ}で近似した場合>
以上のように、コンプガチャに嵌ると、実際にフルコンプしようとするとその種類の数倍以上購入しないといけなくなる羽目になり、あっという間に予算が尽きてしまう危険性があります。
以上は全ての種類が等確率の場合を考えましたが、実際のガチャではレア度など確率に大きな偏りがあるため、上で考えた以上の回数がかかることが予想されます。
ガチャはほどほどにしておきましょう。