【シミュレーション】n 枚のカードで作られた数値は 3 の倍数か?
京都大学2017年度入学試験 数学(理系)の確率問題をエクセルVBAでシミュレーションしました!
問題と理論値
京都大学2017年度入学試験 数学(理系)の確率問題は以下のようなものでした。
問題:
詳しい導出は参考書等に譲りますが、解析解は以下のようになります。
シミュレーション
VBAを用いてシミュレーションした結果が以下の表とグラフです。
有効数字 2 桁以上の精度で、理論値と一致する結果が得られました!
エクセルとVBA全文
今回の計算に使用したエクセルファイルです。
VBAの全文です。
Sub main()
Const MAX_COUNT As Long = 100000
Dim i As Long
Dim j As Long
Dim row As Long
Dim n As Long
Dim count As Long
Dim sum As Long
row = 3
Do While Cells(row, 2) <> ""
n = Cells(row, 2)
count = 0
For i = 1 To MAX_COUNT
sum = 0
For j = 1 To n
sum = sum + WorksheetFunction.RandBetween(1, 5)
Next j
If sum Mod 3 = 0 Then
count = count + 1
End If
Next i
Cells(row, 3) = count / MAX_COUNT
row = row + 1
Loop
End Sub
―――――記事はここまで―――――
ありがとうございました!
スキよろしくお願いします!