パズル万華鏡

面白いパズルの紹介と解説をします。

カードの確率問題(1)の考察

 カードの確率問題(1)の考察を紹介します。

●考察

 プログラムで問題(1)のシミュレーションを行い、理論値に近い結果を得た。
f:id:isemba:20160121184642j:plain
(参考)Basicプログラム

' << CP111.bas >>
' Tiny Basic
' カードの確率問題(1)
'
Dim A(9): ' カードIの表面の色を表す。A(I)=0が赤、A(I)=1が白。
Dim B(9): ' カードIの裏面の色を表す。B(I)=0が赤、B(I)=1が白。
Dim C(0): ' C(0)は上面が赤になる回数を記録する。
'
' 乱数の初期設定。
Randomize 123
'
' カードの初期設定。
' 表面:赤、裏面:赤のカード。
A(1)=0: B(1)=0
' 表面:赤、裏面:白のカード。
A(2)=0: B(2)=1
' 表面:白、裏面:白のカード。
A(3)=1: B(3)=1
'
' 出現回数の初期設定。
' C(0):上面が赤になる回数。
C(0)=0
'
' 試行回数の設定。
NMAX=10000
'
' 実験の実施。
For N=1 To NMAX
  ' 取り出したカードM。Mは1,2,3のいずれか。
  M=Int(3*Rnd)+1
  '
  ' 取り出したカードの表面が上面になる割合は、50%、
  ' 裏面が上面になる割合は50%になる。
  If Rnd < 0.5 Then
    ' 表面が上面になる場合
    ' 表面の色を調べ、赤(=0)なら、C(0)を1増やす。
    If A(M) = 0 Then C(0)=C(0)+1
  Else
    ' 裏面が上面になる場合
    ' 裏面の色を調べ、赤(=0)なら、C(0)を1増やす。
    If B(M) = 0 Then C(0)=C(0)+1
  End If
Next N
'
' 実験結果の表示。
Print"試行回数:";NMAX
Print Using"上面が赤である確率:#.####";C(0)/NMAX
End

実行結果
f:id:isemba:20160121184837j:plain
f:id:isemba:20160121184901j:plain