パソコン活用研究5番街(Visual Basic、Excel(VBA)、BASIC プログラミング研究)

Short Program 二項分布のシミュレーション〜コイントス (準備中)

コインを10回投げた時、表が出る回数が0回、1回、2回、・・9回、10回の確率は
二項分布になります。

なお、二項分布についての説明は、「二項分布」をご参照。

これをシミュレーションするのに、実際にコインを投げるのは大変なので、
コンピュータの疑似乱数を使ってシミュレーションしてみるプログラム。
コインを10回投げるという試行を1024回繰り返して、表が0回、1回、2回、・・9回、10回出る回数を
カウントする。
1024回試行する理由は「二項分布」をご参照いただけばわかると思います。

BASICプログラムのSampleは以下の通り

10 cls
20 dim cnt(15)
30 randomize(val(RIGHT$(Time$,2)))
40 for i=0 to 10
50 cnt(i)=0
60 next i
70 for i=1 to 1024
80 omote=0
90 for n=1 to 10
100 if rnd(1) >0.5 then omote=omote+1: print"表";: else print"裏";
110 next n
120 cnt(omote)=cnt(omote)+1
125 print
130 next i
140 for i=0 to 10
150 print i; ":"; cnt(i)
160 next


実行してみた画面
N88互換BASIC for Windows95で実行




このシミュレーションは、コンピュータの疑似乱数を使っています。
プログラムで使う乱数はコンピュータが計算で求める疑似関数なので、どのくらい本当にランダムなのか
という疑問は多少残ります。上記の結果を見ると、まずまず良質な乱数が得られている気はしますが。
そのあたりのお話は「乱数を使う準備」などをご参照下さい。

また、BASICの乱数については、乱数RNDをご参照下さい。

TOP PAGE >Basic活用研究目次