確率モデル(サイコロ)問題5

説明

確率モデル(サイコロ)問題4のプログラムを使って、試行回数を増やすと出目が出る回数のばらつきがどうなるか確認します。

1000回や10000回など、サイコロを振る回数を増やしてください。

ヒント

* 試行回数を表しているのはどの数値か見つけて変更しよう

* 試行回数を増やすと、プログラムの実行に時間がかかることもあります

Studioで試す

以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。

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呼び出し時の実引数

問題の引用元:

文部科学省「高等学校情報科「情報Ⅰ」教員研修用教材 第3章 コンピュータとプログラミング」(2020)