始めに
いつも通りだらだらYouTubeを見ていたら、とあるソシャゲで『高レアリティのキャラをコンプリートするにはいくらかかるのか?』というなかなかヤバイ動画を発見したので、シミュレートしてざっくり考えてみました。
条件
扱うソシャゲのガチャからはレア度が3~5のキャラと装備品が出現します。
ここでの高レアとは、レア度が4と5のキャラのみを指すものとします。
それぞれの排出率とそのレアリティのキャラ数は
- レア5 : 1% (34体)
- レア4 : 3% (59体)
という風になっています。なお同レアリティのキャラは等しい確率で出現するとします。
また1回ずつガチャを回すのではなく、11回を1セットとして回すこととします。
シミュレート
pythonで適当に書きました。もっと効率的に書けそうですが、そこは目をつむってください()
money_ave = 0
count_ave = 0
min_money = 1000000000
max_money = 0
for num in range(10000):
box_5 = np.zeros(34)
box_4 = np.zeros(59)
money = 0
count = 0
hoshi5_comp = False
hoshi4_comp = False
while True:
for i in range(11):
a = random.randrange(0, 100)
if(a == 0):
hoshi5 = random.randrange(0, 34)
box_5[hoshi5] += 1
elif(a <= 4):
hoshi4 = random.randrange(0, 59)
box_4[hoshi4] += 1
for i in range(34):
if(hoshi5_comp == True):
break
if(box_5[i] == 0):
break
if(i == 33):
hoshi5_comp = True
for i in range(59):
if(hoshi4_comp == True):
break
if(box_4[i] == 0):
break
if(i == 58):
hoshi4_comp = True
money += 1800
count += 11
if(hoshi5_comp and hoshi4_comp):
break
money_ave += money
count_ave += count
if(money < min_money):
min_money = money
if(money > max_money):
max_money = money
money_ave /= 10000
count_ave /= 10000
print(money_ave)
print(count_ave)
print(min_money)
print(max_money)
#結果
10000回試行して、目的達成までの平均回転数は14046回となりました。
このソシャゲでは11連が約1800円でできるので、約230万円あれば高レアのキャラをコンプリートできそうということが分かりました。
なお全シミュレートのうち、最も安く済んだときで約90万円、最も高くついたときで約750万円でした。
#おわりに
数学的な期待値の計算方法がパッと思いつかなかったので、シミュレートしてみたのですが、結構すごい額になることが分かって笑いました。好きな投稿者さんなので破産しない程度に頑張ってもらいたいです。