今回はExcelのVBAを使用して、自分が選んだ数字がどのくらい当たるのかを調べてみたいと思います。
ロト6の当選は以下の通りです。
1等 6個一致
2等 5個一致+ボーナス数字と一致
3等 5個一致
4等 4個一致
5等 3個一致
当選金額と確率が知りたい方は公式サイトで。
Excelのランダム関数を使用しますが、今回使用したプログラムが完全にランダムかは微妙なところです・・・
まず、6つの数字を入力します。(重複はなし)
試行回数を入力し、マクロの実行ボタンを押します。パソコンのスペックにもよりますが、回数は10万回くらいが目安です。一回一回表示させるようにすると、実行速度がかなり遅くなってしまうので、まとめて表示させるようにしています。
試しに100,000回実行した結果です。そんなに問題はなさそうです。
一応下にVBAで書いたコードを載せておきます。重大なミスなどがありましたら申し訳ありません。
一応わかりやすいように書いたつもりですが・・・
Sub 正方形長方形1_Click()
Dim Chz(5)
Chz(0) = Cells(4, 2)
Chz(1) = Cells(4, 3)
Chz(2) = Cells(4, 4)
Chz(3) = Cells(4, 5)
Chz(4) = Cells(4, 6)
Chz(5) = Cells(4, 7)
Dim a(6) '結果
Dim Bonus 'ボーナス数字判定
Dim seikai(7) '正解数
Randomize
While m < Cells(2, 9) '回数:ここではセルI2
Bonus = 0 'リセット
goukei = 0
'乱数作成
For i = 0 To 6
a(i) = Int(Rnd() * 43) + 1
For j = 0 To i - 1
If a(i) = a(j) Then
i = i - 1
End If
Next
Next
'比較
For k = 0 To 5
If a(6) = Chz(k) Then
Bonus = 1
End If
For n = 0 To 5
If Chz(k) = a(n) Then
goukei = goukei + 1
End If
Next
Next
If Bonus = 1 And goukei = 5 Then
seikai(7) = seikai(7) + 1
Else: seikai(goukei) = seikai(goukei) + 1
End If
m = m + 1
Wend
'表示
For l = 0 To 7
Cells(4, 9 + l) = seikai(l)
Next
End Sub