1/6に収束

今日はお遊びで、サイコロを振ってみよう。
f:id:Infoment:20200405191206j:plain

サイコロを振った際、任意の目が出る確率は全て「1/6」だ。
※各目の掘り具合で、サイコロの重心が微妙にずれるという点は、
 今回不問とする。

しかし5回や10回振っても、実際の出目の割合は1/6にならない。
たくさん振ってはじめて、各出目の確率が等しく1/6へ収束するというイメージ。

そこで今回、これを視覚化してみた。
用意したのは、テーブルとピボットテーブルを一つずつ。

【テーブル】
f:id:Infoment:20200405191528p:plain

表の見方は、上記画像で言えば

  • 1回目・・・6
  • 2回目・・・4
  • 3回目・・・3

となる。取り敢えず、千行準備した。

【ピボットテーブル】
f:id:Infoment:20200405191745p:plain

各出目の出る確率を集計し、100分率で示している。

確率1/6 ≒ 16.6%

となる。

数字で見るだけでは面白みに欠けるので、視覚化してみた。
f:id:Infoment:20200405192155p:plain
REPT関数で、「■」を繰り返している。16%なら、■が16個並ぶ。

それでは、サイコロを振ってみよう。

Sub HOGE()
    Dim Tb As Excel.ListObject
    Set Tb = Sheet1.ListObjects(1)
        On Error Resume Next
        Tb.ListColumns(2).DataBodyRange = vbNullString
    
    Dim Pvt As Excel.PivotTable
    Set Pvt = ActiveSheet.PivotTables(1)

    Dim i As Long
    Dim iMax As Long: iMax = Tb.ListRows.Count
        For i = 1 To iMax
            Range("D1") = i
            Tb.ListRows(i).Range.Cells(2) = WorksheetFunction.RandBetween(1, 6)
            Pvt.PivotCache.Refresh
            Application.Wait [Now() + "00:00:00.001"]
        Next
End Sub

f:id:Infoment:20200405192454g:plain

結果は ↓ こちら。
f:id:Infoment:20200405192551p:plain

1000回程度では、きれいに1/6には収束しないようだが、そこそこの数値には収束するようだ。

今日は、それで?と問われると、それまでのお話。

参考まで。