ボックスガチャの計算方法。できればエクセルで。


例えば、ガチャの中に100枚のカードがあり、あたりが2つあるとします。この時、あたりを1つ引く回数の期待値はいくつなのでしょう?また、2つとも引く回数の期待値もおしえてください。

他にも、100枚のうち、あたりが5つあり、そのうち1つ引く回数、2つ引く回数なども知りたいです。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/08/11 17:42:59
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント100pt

Ruby でやってみました。

def get_expected_value(n, hit, need)

    random = Random.new

    data = []
    20000.times {
        a = []
        hit.times {
            a << random.rand(1..n)
        }

        data << a.sort[need - 1]
    }

    sum = data.inject(0) { |s, i| s += i }

    sum / data.length.to_f
end

def challenge(n, hit, need)
    data = []
    5.times {
        ev = get_expected_value(n, hit, need)
        data << ev
        puts "#{hit} / #{n} : #{need} --> #{ev}"
    }
    puts "AVERAGE : #{hit} / #{n} : #{need} --> #{data.inject(0) { |s, i| s += i } / data.length.to_f }\n\n"
end

challenge(100, 2, 1)
challenge(100, 2, 2)
challenge(100, 5, 1)
challenge(100, 5, 2)

厳密ではないんですが、全体の枚数に比べて当たりの数が少ないので、問題ないでしょう。
出力は、こんな感じ。

2 / 100 : 1 --> 33.88975
2 / 100 : 1 --> 33.91605
2 / 100 : 1 --> 33.7368
2 / 100 : 1 --> 33.84725
2 / 100 : 1 --> 33.8828
AVERAGE : 2 / 100 : 1 --> 33.854530000000004

2 / 100 : 2 --> 67.1916
2 / 100 : 2 --> 66.86195
2 / 100 : 2 --> 67.00155
2 / 100 : 2 --> 67.2567
2 / 100 : 2 --> 66.7357
AVERAGE : 2 / 100 : 2 --> 67.00949999999999

5 / 100 : 1 --> 17.17825
5 / 100 : 1 --> 17.27755
5 / 100 : 1 --> 17.26575
5 / 100 : 1 --> 17.24345
5 / 100 : 1 --> 17.0687
AVERAGE : 5 / 100 : 1 --> 17.206739999999996

5 / 100 : 2 --> 33.84685
5 / 100 : 2 --> 33.762
5 / 100 : 2 --> 33.84545
5 / 100 : 2 --> 33.9635
5 / 100 : 2 --> 33.8712
AVERAGE : 5 / 100 : 2 --> 33.8578

まとめると、こんな感じです。

当たりの数欲しい数回数の期待値
2
1
33.85
2
2
67.01
5
1
17.21
5
2
33.86
id:iiiiiiiii

ありがとうございます!素晴らしいですね!
Rubyのコードも参考にさせていただきます!!!

2015/08/08 00:26:22

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません