r-statistics-fanの日記

統計好きの現場の臨床医の覚書のようなもの

レアカードガチャ

レアカード

リボライブ! - 驚異のアニヲタ社会復帰への道でレアカードのコンプリートまでの回数をシミュレーションしていた。 勉強のために自分でもやってみる。

## UR card
rare <- 66  #レアカード枚数
rarep <- 0.01  #いずれかのレアカードが出る確率
card <- c(1:(rare + 1))
pr <- c(rep(rarep/rare, rare), (1 - rarep))  #レアcard1-66のでる確率に設定。0.01/66でNo1-66のレアカードが出る。67はハズレ
needn <- 2  #各レアカードの必要枚数

ur <- ur1 <- c(rep(needn, rare), 0)  #レアカード必要数。初期値は全部2。はずれの67はゼロ

miter <- 1000  #シミュレーション回数
ct <- numeric(miter)  #カウンター

for (i in 1:miter) {
    pb <- txtProgressBar(min = 1, max = miter, style = 3)
    setTxtProgressBar(pb, i)
    while (sum(abs(ur) + ur)) {
        # レアカード必要数がすべて0かマイナスにならない間は繰り返す
        temp <- sample(card, 1, replace = TRUE, prob = pr)
        ur[temp] <- ur[temp] - 1
    }
    ct[i] <- sum(ur1) - sum(ur)  #カウンターに施行回数を記録
    ur <- ur1  #リセット
}
 
stone_yen <- 5000/86  # ラブカストーン1個の単価

kakin <- ct * 50 * stone_yen/11  # ガチャ回数を金額に変換
hist(kakin/1e+06, freq = TRUE, breaks = 50, xlab = "課金額(百万円)", main = "", 
    col = 5)
plot of chunk unnamed-chunk-1

min(ct)  #最低施行回数
## [1] 24761
min(kakin)  #最低金額
## [1] 6543605
quantile(kakin, 0.025)  #両側95%の下方
##    2.5% 
## 8041775


1000回のシミュレーションでは最低でも654万円かかる。

次に140万円で、どれだけレアカードが引けるのか。

ゲームシステムは知らないが、もし他人と交換ができるのなら、種類を問わず66*2=132枚 集まれば交換でなんとかなるのかもしれない。

 

13200 * 50 * stone_yen/11  #単純に種類を問わず132枚あつまる期待値の回数で計算した金額
## [1] 3488372

1400000/(50 * stone_yen/11)  #140万円で回せる回数=5300回
## [1] 5298

sum(dbinom(132:5300, 5300, 0.01))  #5300回の施行で単純に種類を問わず132枚以上あつまる確率
pbinom(131, 5300, 0.01, lower.tail = FALSE) #同上 確認
## [1] 3.157e-20

 > 1 / pbinom(131, 5300, 0.01, lower.tail = FALSE) #何回に一回くらい起こるか

[1] 3.167707e+19

 

世界の人口はるかに超えているんですけど。

うーむ。交換できる前提でも無理ゲーだわ。

 

たぶん出ていないURカードがそこそこ優先的に出るような分布で調整されているような気がする。

 

種類を問わず132枚でも無理ゲーなので、この可能性も消えた。

 

 

ネタのコラ画像なのか。1%という前提が違うのか。

あとは自分の計算間違いなのか。

 

 

結論:よくわからん