サンプルプログラム
確率モデル(サイコロ)問題5
説明
確率モデル(サイコロ)問題4のプログラムを使って、試行回数を増やすと出目が出る回数のばらつきがどうなるか確認します。
1000回や10000回など、サイコロを振る回数を増やしてください。
ヒント
* 試行回数を表しているのはどの数値か見つけて変更しよう
* 試行回数を増やすと、プログラムの実行に時間がかかることもあります
Studioで試す
以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。
プログラム
function count(a@, min_soeji, max_soeji, x)
cls 1
number = 0
for i = min_soeji to max_soeji
if a@[i] = x then
number = number + 1
end if
next
return number
end function
saikoro@=[]
deme@=[]
for i = 1 to 100
saikoro@[i] = random(1,6)
next
for i = 1 to 6
number=count(saikoro@,1,100,i)
deme@[i]=number
next
for i = 1 to 6
print deme@[i]
next
procedure bar_graph a@, min_soeji,max_soeji
cls 2
rem 棒グラフの太さ
w = 10
rem 左の空白
left_space = 50
rem 上の空白
ytop = 50
rem x軸の長さ
xlen = 550
rem y軸の長さ
ylen = 300
rem y軸の下端
ybottom = ytop + ylen
rem スケール
y_max=0
for i=min_soeji to max_soeji
if y_max<a@[i] then
y_max=a@[i]
end if
next
yscale = ylen / y_max
rem x軸とy軸の線
line(left_space,ybottom)-(left_space+xlen,ybottom),7
line(left_space,ybottom)-(left_space,ytop),7
rem 要素数
yousosu = max_soeji + 1 - min_soeji
rem 要素ごとの間隔
kankaku = (xlen-w*yousosu) / (yousosu+1)
for i = min_soeji to max_soeji
x = left_space + (i-min_soeji+1) * kankaku + (i-min_soeji)*w
x2 = x + w
box(x,ybottom)-(x2,ybottom-a@[i]*yscale),7,7
next
end procedure
call bar_graph deme@,1,6
解説
使用するプログラムは確率モデル(サイコロ)問題4と同じです。詳しくはそちらを参照してください。
このプログラムのうち、試行回数の上限を設定しているのは以下の行です。
* 15行目のfor文
* 20行目のプロシージャcount呼び出し時の実引数
問題の引用元: