頭の整理

頭の中を整えるために,色々と書き綴ります

ボックスガチャの当たりの数の推定

ボックスガチャ(箱くじ)とは,あらかじめ決められた数の「当たり」と「はずれ」が入れられたものから,ランダムにくじを引いていくゲームのことを指します.この記事では,箱の中のくじの総数がわかっているときに,箱の中の当たりの数を推定する方法を例から紹介します.

 

例:箱の中に当たりとはずれを合わせて100本のくじが入っている.この箱から10本のくじを引いたところ,当たりが3本,はずれが7本であった.

 

まず,「当たりが3本,はずれが7本」ということから,次が成り立ちます.

 

1.箱の中の当たりの本数を  { \displaystyle r } とおくと,

  { \displaystyle 3 \leq r \leq (100 - 7) } ,つまり,

  { \displaystyle 3 \leq r \leq 93 }

 

続いて,箱の中の当たりの本数が  { \displaystyle r } であるときに,「当たりが3本,はずれが7本」という事象が起こる確率  { \displaystyle p_r } を求めます. { \displaystyle p_r } は次式で求められます.

 { \displaystyle p_r = \frac{ \left( \prod _{j=0} ^{2} \left( r - j \right) \right) \cdot \left( \prod _{i=0} ^{6} \left( 100 - r - i \right) \right) }{ \prod _{k=0} ^{9} \left( 100 - k \right) } \cdot \frac{10!}{3!7!} \ \ \ \ldots (1) }

 

ここで求めた確率  { \displaystyle p_r } を次の操作によって  { \displaystyle r } を確率変数とする離散型の確率関数  { \displaystyle P \left( r \right) } へと変換します.

 { \displaystyle P \left( r \right) = \frac{p_r}{\sum _{r=0} ^{100} p_r} \ \ \ \ldots(2) }

 

f:id:todayf0rmu1a:20200105165941p:plain

上図は横軸に  { \displaystyle r } を,縦軸に  { \displaystyle P \left( r \right) } をとったプロットです. { \displaystyle P \left( r \right) } は  { \displaystyle r = 30 } で最大値をとり, { \displaystyle r } の期待値は33になります.

最後に, { \displaystyle P \left( r \right) } を計算するためのVBAコードを載せておきます.

 

Sub Boxgacha()
Dim n As Integer
Dim m As Integer
Dim s As Integer
Dim t As Integer
Dim r1 As Integer
Dim r2 As Integer
Dim p(100) As Variant
Dim k As Integer
Dim psum As Variant
Dim E As Variant


'くじの総数,引いた当たりの数,はずれの数
n = 100
s = 3
t = 7

m = s + t

r1 = s
r2 = n - t

k = 0

'確率pの計算
For r = 0 To n
If r < r1 Then
p(r) = 0
k = 1
End If

If r > r2 Then
p(r) = 0
k = 1
End If

If k < 1 Then
p(r) = 1
For k1 = n To n - m + 1 Step -1
p(r) = p(r) / k1
Next k1

For k2 = r To r - s + 1 Step -1
p(r) = p(r) * k2
Next k2

For k3 = n - r To n - r - t + 1 Step -1
p(r) = p(r) * k3
Next k3

For k4 = 1 To m
p(r) = p(r) * k4
Next k4

For k5 = 1 To s
p(r) = p(r) / k5
Next k5

For k6 = 1 To t
p(r) = p(r) / k6
Next k6

End If

k = 0

Next r

'確率の和の計算
For k7 = 0 To n
psum = psum + p(k7)
Next k7

'確率の正規化
For k8 = 0 To n
p(k8) = p(k8) / psum
Next k8

'期待値の計算
For k9 = 0 To n
E = E + k9 * p(k9)
Next k9

For k10 = 0 To n
Cells(2 + k10, 1) = k10
Cells(2 + k10, 2) = p(k10)
Next k10

Cells(2, 3) = E

End Sub

 

 

偶然とは何か:北欧神話で読む現代数学理論全6章

偶然とは何か:北欧神話で読む現代数学理論全6章

 
「Amazon.co.jpアソシエイト」