見出し画像

【シミュレーション】京都大学2019数学(理系)

京都大学2019年度入試の数学(理系)で出題された確率の問題を数値的に解いてみました!

問題と解析解

問題

画像4

理論的には、二重総和の計算がポイントとなる、基本的な確率問題と言えると思います。解析解は下の通りです。

画像2

シミュレーション

シミュレーションの概要:
〈サイコロを投げる回数〉を変化させながら、各〈サイコロを投げる回数〉に対して、10万回シミュレーションを行った。そのうち、問題の条件を満たすものの個数を数え、その割合を記録し、理論値と比較した。

下はシミュレーションの結果を示した表とグラフです。

画像3

画像4

結論

有効桁数2,3桁で、計算値と理論値が一致することがわかりました!

エクセルとVBA全文

今回のシミュレーションに用いたエクセルです。

VBAの全文を載せておきます。

Option Explicit

Const MAX_N As Long = 100000

Sub main()
   Dim diceEyes() As Long
   Dim i As Long
   Dim j As Long
   Dim n As Long
   Dim row As Long
   Dim count As Long
   Dim gapCount As Long
   
   row = 3
   Do While Cells(row, 2) <> ""
       n = Cells(row, 2)
       count = 0
       
       ReDim diceEyes(0 To n) As Long
       diceEyes(0) = 0
       
       For i = 1 To MAX_N
           Application.StatusBar = n & ", " & i
           DoEvents
           
           gapCount = 0
           
           For j = 1 To n
               diceEyes(j) = WorksheetFunction.RandBetween(1, 6)
           Next j
           
           For j = 1 To n
               If diceEyes(j - 1) <= 4 And diceEyes(j) >= 5 Then
                   gapCount = gapCount + 1
               End If
           Next j
           
           If gapCount = 1 Then
               count = count + 1
           End If
       Next i
       
       Cells(row, 3) = count / MAX_N
       
       row = row + 1
       DoEvents
   Loop
End Sub

-----記事はここまで-----
記事はここで終わりです。
読んでくださり、ありがとうございます!

いいなと思ったら応援しよう!