一覧へ 情報Ⅰ (3) 第10回 | シミュレーションの活用
情報Ⅰ (3) コンピュータとプログラミング | 第10回

シミュレーションの活用

1 万回さいころを振り、1% のくじを 100 回引く。数秒で終わる。その結果をどこまで信じるかも考える

50分 | キーボードがあるとよい
教師用メモ

準備 教室コードは新しいものにする。「教師」を押す。体験 01 は Python、体験 02・03 はつまみで動かす。

時間配分 前回まとめ・目標 4分 / 節1 1 万回 14分 / 節2 1% を 100 回 12分 / 節3 モデルを疑う 14分 / まとめ・自己評価・ふりかえり 6分

教科書: 新編情報Ⅰ 30 シミュレーションの活用(p.82)。

この回の評価(指導要領 (3) ア(ウ) イ(ウ)。目的に応じたモデル化とシミュレーション、結果を踏まえた解決方法の考察。内容の取扱い(4)「モデルの違いによって結果が異なることを扱う」。単元設計は 単元設計のページ)

  • 知識・技能 乱数を使ったシミュレーションのプログラムを読み書きし、試行回数と結果の関係を説明している(体験01)
  • 思考・判断・表現 直感と結果のずれを試行から確かめ(体験02)、条件を変えたときの結果の違いから対策を選んでいる(体験03)
  • 態度 結果をうのみにせず、モデルが適切かを検討しようとしている(体験03・ふりかえり)

ふりかえりの枚の自己評価の分布を見て、次回の単元末の課題の入り方を決める。

前回のまとめ

残すものを決めたら、モデルができた

物理・図的・数理→水位 = a × 時間→一度きり・費用と時間・危険

モデルができれば、コンピュータの中で何度でも試せる。数値やプログラムを直すだけで条件を変えられるので、部品を交換する費用も手間もかからない。今日は実際に走らせる

当選確率 1% のくじを 100 回引けば、1 回は当たるか

教師用メモ

この問いに挙手で答えさせる(当たる/当たらない/分からない)。人数を板書。節2 で答え合わせをする。予想を先に置くのが今日の山場の仕掛け。

前回「まだ」が多かった目標を 2 分拾う。

今日の目標

授業の終わりにできるようになること

01
乱数を使ったシミュレーションを書いて動かし、試行回数と結果の関係を言える
02
直感と結果のずれを、試して確かめられる
03
条件を変えて結果を比べ、モデルが適切かを検討できる
01 | 14分
1 万回

さいころを振る

02 | 12分
1% を 100 回

予想と結果を比べる

03 | 14分
モデルを疑う

条件を変えて比べる

SECTION 01

1 万回

人には無理でも、コンピュータなら数秒

机いっぱいに広がった無数のさいころを前に、高校生が数えるのをあきらめてノートパソコンに向かっている
体験 01

さいころを 1 万回振って、1 の目の割合を出す

やること ①実行して割合を見る ②もう 2 回実行して、毎回わずかに違うことを確かめる ③ 10000 を 10 に変えて 3 回実行する(ばらつきが大きい) ④ 100、1000、10000 と増やして、1/6 = 0.1667 に近づくのを見る
実行結果

※ cnt=0 は「数える箱を空にしておく」という準備(初期化)。回数を変えるときは、range の中と、割る数の両方を直す

教師用メモ

進め方(12分) 実行 → 0.16 前後。「理論上は 1/6 = 0.1667」。10 回だと 0.0 や 0.3 が出る。1 万回だと安定する。

要点 試行回数が少ないと、偶然のばらつきが大きい。多いほど理論値に近づく。「1 回試して結論を出さない」がシミュレーションの基本。

つまずき range だけ 10 に変えて割る数を 10000 のままにすると、極端に小さい値が出る。「動くけれど間違い」の例。8 行目を p=cnt/i ではなく回数の変数にまとめる書き方(n=10000 を先に置く)を教えると直す場所が 1 か所になる。第8回の関数と同じ考え。目標 01。

SECTION 02

1% を 100 回

当たる気がする。本当か

くじ引きの箱に何度も手を入れている高校生と、その回数を数えている友達
体験 02

当選確率 1% のくじを 100 回引く | 1 万人分を一度に

「1 人が 100 回引く」を 1 万人分やってみる。当選確率と引く回数はつまみで変えられる。「もう一度」を押すたびに結果は少し変わる

1%
100
—
1 回以上当たった人の割合
—
1 回も当たらなかった人の割合
教師用メモ

進め方(10分) 冒頭の挙手の人数と比べる。結果は約 63%が 1 回以上当たり、約 37% は 100 回引いても 1 回も当たらない(教科書 p.83 の答え)。

拾いたい反応 「1% × 100 回 = 100% だと思った」。確率は足し算ではない。「当たらない」が 100 回続く確率が 0.99 の 100 乗で約 37%。

つまみで確率を 5% にすると 99% 以上が当たる。回数を 10 にすると 1 割程度。数を変えて何度も試せるのがコンピュータシミュレーションの強み。

実生活の話に落とす: ガチャ、抽選、雨の確率。「確率が低くても回数が多ければ起こる」「回数が多くても必ず起こるわけではない」。目標 02。

SECTION 03

モデルを疑う

出た数字が、そのまま答えではない

画面に映ったグラフを指さして話し合う高校生3人。1人は別の紙のグラフを持ってきて並べている
体験 03

広がり方のモデル | 条件を変えて、結果を比べる

1000 人の集団で、あるものが人から人へ広がる様子を、とても単純なモデルで表した。1 日に 1 人が接する人数と、広がりが止まるまでの日数を変えて、グラフの形を見比べる

6
10%
7 日
—
同時に広がっている人が最も多い日の人数
—
最後までに広がった人の合計
教師用メモ

進め方(12分) 接する人数 6 → 3 に減らす。「山が低くなり、後ろにずれる」。合計は減る。「同じ集団でも、条件を変えると結果が変わる」。

ここが今日の要点(教科書 p.82 の 3 つの注意)

  • どこまで正確に作るか このモデルは年齢も地域も移動も無視している。大まかな傾向を見るには足りるが、地域ごとの対策を決めるには足りない
  • 別のモデル化はないか 一人ひとりを点として動かすモデル、地域をブロックに分けるモデルもある。表現の仕方は一つではない
  • モデルが適切か 実際のデータと比べ、合わなければ直す。合うまで直すのではなく、なぜ合わないかを考える

「この 3 つを言えることが、結果を出すことと同じくらい大事」。次回の単元末の課題でも、この目で自分の作品を見る。目標 03。

まとめ

コンピュータで試す | 速い、何度でもできる、そして疑う

コンピュータで行うよさ数値やプログラムを直すだけで条件を変えられる。部品の交換にあたる費用や手間がかからない。偶然に左右される事象も、乱数でモデル化できる
そのための条件コンピュータで扱える形のモデルが要る。状態を表す数値と、関係を表す数式
試行回数回数が少ないとばらつきが大きい。多いほど理論値に近づく。1 回の結果で結論を出さない
3 つの注意①どこまで正確に作るか(目的に合わせる) ②別のモデル化はないか ③モデルが適切か(必要なら直す)
教師用メモ

次回・次々回は単元末の課題。「身のまわりの手作業を 1 つ、プログラムに任せる」。今日までの道具(分岐・反復・リスト・乱数・関数)を使ってよいと伝え、候補を考えてくるよう促す。

予想

点を 100 倍にすると、値はどうなるか

乱数を使ったシミュレーションを、別の題材でも動かす

確かめる前に、いまの予想を 1 つ選ぶ。当たっていなくてよい。予想を置いておくと、違ったときに気づける

選んだ人数が右に出る。分かれているところを 1 つ読み上げてから次へ

クラスの予想
教師用メモ

予想を先に(2分) 先に道具を開くと、触って終わる。予想を置いてから確かめると、違ったところが残る。

6分。円周率と待ち行列。どちらも回数を増やすと安定するのが見える。

道具は外で公開されている Web アプリ。この授業のページの中で開くので、別のページへは移らない。閉じれば、そのままこの枚に戻る。ブラウザの中で動き、入力はこの授業のサーバーには送られない。

確かめる

道具で確かめて、予想と合っていたかを見る

モンテカルロ法点をたくさん打って、円周率を求める
  1. 「この枚で開く」を押す
  2. 点の数を 100 と 100000 で比べる
  3. 回数を増やすと値が安定することを確かめる
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る
待ち行列並ぶ人と窓口の数を変えて、待ち時間の変化を見る
  1. 「この枚で開く」を押す
  2. 窓口を 1 つ増やす
  3. 待ち時間がどれだけ減るかを見る
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る
確かめて分かったことを、一文で
確かめて分かったこと
教師用メモ

進め方 手順のとおりに触らせる。終わったら前の枚の予想と見比べ、外れた人を 2 人読み上げる。

6分。円周率と待ち行列。どちらも回数を増やすと安定するのが見える。

道具は外で公開されている Web アプリ。この授業のページの中で開くので、別のページへは移らない。閉じれば、そのままこの枚に戻る。ブラウザの中で動き、入力はこの授業のサーバーには送られない。

今日のまとめ

3つの目標に、自分の操作で答える

01
1 万回 0.166 前後。10 回だとばらついた。回数が多いほど理論値に近づく
02
1% を 100 回 当たるのは約 63%。約 37% は一度も当たらない。確率は足し算ではない
03
モデルを疑う 条件を変えると山の高さと時期が変わった。どこまで正確に・別の作り方は・適切か
自己評価

今日の目標、自分はどこまで

3 つの目標それぞれに、できた/だいたい/まだ、を 1 つ選ぶ。右の帯にクラス全体の分布が出る

今日の目標、自分はどこまで | 1 つずつ選ぶ
01乱数のシミュレーションを動かし、試行回数と結果の関係を言える
02直感と結果のずれを、試して確かめられる
03条件を変えて比べ、モデルが適切かを検討できる
できただいたいまだ
教師用メモ

1 分。「まだ」が多い目標は、次回の冒頭で拾い直す。

ふりかえり

シミュレーションで確かめてみたいこと

一文でよい。「〇〇を試したい。△△を数にすればできそう」の形

みんなの試したいこと
教師用メモ

3 分。ここで出たものは次回の課題の候補になる。「数にできるか」を書けている人を 2 人読み上げる。