cs-7. 乱数,シミュレーション
(コンピューターサイエンス)
URL: https://www.kkaneko.jp/cc/cs/index.html
1
金子邦彦
乱数の基本概念とその重要性
一様分布正規分布2種類の乱数とその
用途
Excelを用いた乱数の生成方法と分布の可
視化
モンテカルロ法待ち行列を例として、
数のシミュレーションへの応用を示す
2
アウトライン
1. Microsoft 365 Excel
2. 乱数
3. Excelの乱数の機能
4. 乱数とシミュレーション
5. 円周率を求める
6. 到着間隔を分析する
3
7-1 Microsoft 365 Excel
4
Microsoft 365 の主な機能
パソコンでレポートを作成したり,発表したり,データをまとめたりで便利
5
ワード (文書作成)
エクセル (表計算)
パワーポイント
(プレゼン)
ワンノート (電子ノート)
アウトルック (電子メール)
Microsoft 365 の種類
2種類ある.この授業では,どちらを使用しても問題
ない
6
Microsoft 365 オンライン版
WEBブラウザで使う.
https://portal.office.com
各自の ID パスワードでサインインが必要.
Microsoft 365 アプリ版
前もってインストールが必要
インストールでは,大量の通信が行われる.
(時間がかかる.通信費用にも注意)
Microsoft 365 オンライン版で Excel を起動
要点 Web ブラウザで,次のページを開き,各自の ID
パスワードでサインイン
https://portal.office.com
7
Microsoft 365 オンライン版で Excel を起動
Web ブラウザで,次のページを開く
https://portal.office.com
電子メールアドレスを入れる.「次へ」をクリック.
(例)p1234567@fukuyama-u.ac.jp
8
Microsoft 365 オンライン版で Excel を起動
パスワードを入れ,「サインイン」をクリック
パスワードは,各自が設定したもの
Excel を使いたいときは,メニュー Excel を選ぶ
9
さまざまなメニュー
Microsoft 365 オンライン版で Excel を起動
Excel のブックの種類を選ぶ
この授業では「新しい空白のブック」を使う
Excel の画面が開く
10
Microsoft 365 アプリ版のインストールと
Excel の起動
【要点】 インストールは,Microsoft 365 アプリ版を使える
ようにするための作業(最初に行う).
そのとき,次のページを開き,各自の ID パスワードでサ
インイン
https://portal.office.com
インストールが終わったら,スタートメニュー等で Excel
起動
11
Microsoft 365 アプリ版のインストールと
Excel の起動
Web ブラウザで,次のページを開く
https://portal.office.com
電子メールアドレスを入れる.「次へ」をクリック.
(例)p1234567@fukuyama-u.ac.jp
12
Microsoft 365 アプリ版のインストールと
Excel の起動
パスワードを入れ,「サインイン」をクリック
パスワードは,各自が設定したもの
画面で「Office のインストール」をクリック.メニューで
Microsoft 365 のアプリ」を選ぶ
13
Microsoft 365 アプリ版のインストールと
Excel の起動
画面の指示に従い,インストールを行う
インストールでは,大量の通信が行われる.
(時間がかかる.通信費用にも注意)
14
次のような指示がでる
1.保存する
2.フォルダーを開く
3.実行し,その後も,画面の指示に従う
Microsoft 365 アプリ版のインストールと
Excel の起動
Excel を使うときは,スタートメニューなどで Excel
を選ぶ
Excel のブックの種類を選ぶ
この授業では「新しい空白のブック」を使う
Excel の画面が開く
15
7-2 乱数
16
17
乱数は,ランダムな数であり,
測不可能
コンピュータは,基本的に,予測
可能な処理しか行えないため,乱
数相当のものを生成するためには
特別なアルゴリズムが使用される
乱数
乱数の用途
ゲーム開発
アイテムの配置,敵の行動をランダムに
シミュレーション
乱数を用いたシミュレーション(ランダムな数の
用により,現実に近い現象を再現)
18
コンピュータの乱数を活用するために知っておい
た方がよいこと ①乱数の分布のバリエーション
一様分布:等確率で分布
(例)さいころは1,2,3,4,5,6で等確
(用途の例)偏りのない抽出(当選者の抽選など),
偏りのないイベント発生
正規分布:平均を中心に集中,平均を離れると確
率が減るという性質を持つ
(用途の例)自然現象の分析,品質管理,計測デ
タの分析
19
コンピュータの乱数を活用するために知っておい
た方がよいこと ②シード
コンピュータは,シードと呼ばれる初期値を基に
乱数を生成
シードを固定すると,同じ乱数が発生する.
コンピュータ内蔵の時計などを利用して,シード
を変えることは簡単にできる
20
まとめ
乱数予測不可能である。
ゲーム開発では乱数を使ってアイテムの配置や敵の
動をランダムにする。
シミュレーションでは乱数を利用し、現実に近い現象
を再現する。
一様分布等確率で分布し、偏りのない抽出やイベ
ト発生に使用される。
正規分布平均を中心に集中し、離れるほど確率が
する性質を持つ。
コンピュータはシードと呼ばれる初期値から乱数を生
し、シードを固定すると同じ乱数が発生する。
(シードを変えることで乱数の結果を変えることがで
きる。)
21
7-3 Excel の乱数の機能
22
Excel の乱数の機能
一様分布の乱数
=RAND() 範囲は0から1
正規分布の乱数
=NORM.INV(RAND(), mean, stdev)
平均が0で,標準偏差が1
23
Excel の一様分布の乱数
=RAND() 範囲は0から1
24
Excel で、式「=RAND()」を
コピー&貼り付け
Excel で特定の範囲の一様分布の乱数
=RAND()*(b-a)+a 範囲は a から b
25
元の乱数は 0
1 の範囲とす
0
1
0
2
2倍すると,範
囲は 0 から 2
-1
1
2倍して,1引く
と,範囲は -1
から 1
演習
トピックス
一様分布の乱数
範囲は ー1 から
26
27
Excel を起動する.起動したら「空白の
ブック」を選ぶ
オンライン版の場合
アプリ版の場合
-1 以上 1 未満の乱数の式
=RAND() * 2 - 1」をセル A1 に書く
28
セル A1 の式を,
A2 から A100 に「コピー&貼り付け」する.
右クリックメニューが便利
29
実行のたびに、違う値になる
(乱数なので、ランダムな値)
・表示が「###」のようになっている
のが気になる場合には,列の幅を広げる
・あとで使うので,Excel
終了しないで,そのままにしておく
いままでのまとめ
セル A1 から A100
-1 以上 1 未満の乱数の式
=RAND() * 2 - 1
30
7-4 乱数とシミュレーション
31
32
ランダム性を含む現象のシミュ
レーション
交通流,天候,金融,物理現象など,
ランダム性を持つ現象をデジタル上
で再現
現象の理解,意思決定のサポー
乱数とシミュレーション①
33
モンテカルロシミュレーション
乱数を利用してランダムな試行を繰
り返し,統計的な結果を得る
不確実性を考慮した意思決定,
近似解の算出
乱数とシミュレーション②
7-5 円周率を求める
34
モンテカルロシミュレーションによる円周率
の算出
モンテカルロシミュレーションによる円周率の算出は、
一様分布の乱数を使用
ランダムに点を生成
②①で打った点が円の内部に入るかどうかを判定
円内に入った点の数全体の点の数で割る
④③から,円の面積を算出
⑤④から,円周率を算出
乱数を使って,ランダムに点を生成し、円周率を求めて
いく。得られる結果は近似的な値であり、乱数の数を増
やすことでより正確な結果に近づけることができる。
35
36
縦2,横2の四角形
面積は4
37
半径1の円
面積=円周率
38
正方形の中でランダム
に点を生成
内側に点が入る確率は
円周率/4
演習
トピックス
モンテカルロシミュレーショ
円周率の算出
39
セル A1 の式を,
B1 から B100 にも「コピー&貼り付け」する.
右クリックメニューが便利
40
実行のたびに、違う値になる
(乱数なので、ランダムな値)
Excel での散布図の作成手順
41
グラフ化したい部分を範囲選択
元データ
リボンで「挿入」→散布図
散布図が得られる
アプリ版の Excel
オンライン版の Excel
Excel での散布図の種類の選択
42
挿入
散布図を展開
一番左上の散布図
をクリック
アプリ版の Excel
オンライン版の Excel
挿入
散布図を展開
一番左の散布図を
クリック
セル A1 から B100 までのエリア を,マウスでド
ラッグして(範囲選択),散布図を作成
43
マウスでドラッグ(範囲選択)
乱数の散布図が
得られる
44
縦の長さ2,横の長さ2の正方形の中に,
青い100個
中心 (0, 0) で半径1の円の式
=(A1 * A1 + B1 * B1 ) < 1」をセル C1
45
点が「半径1の円の中にあるか」を調べている
100個の点全てを調べ,
円の中の点の数が 60 なら,円の面積は 60 * 4 / 100
縦の長さ2,横の長さ2の正方形
セル C1 の式を,
C2 から C100 に「コピー&貼り付け
右クリックメニューが便利
青い点が,円の内側にあれば
TRUE
46
Excel で条件に合致するセルを数える
47
=COUNTIF(C1:C100, TRUE)
セルの範囲 C1:C100 の中で,
値が TRUE になっているものを数える
セル C101
=COUNTIF(C1:C100, TRUE)」を書いて,
TRUE の数を数える
48
セル C102
=C101 * 4 / 100」をセル C102 に書いて,
結果を確認する
円周率が求まる
円の面積 円周率 × (半径)
ただし,今回は,半径=1
49
7-6 到着間隔を分析する
50
51
待ち行列は、複数の要素が順番待
ちするもの
待ち行列は、現実世界での様々な
現象のシミュレーションに利用可
交通システム、通信ネットワーク、
製造ライン、カスタマーサービス
(レジの並びなど)の分析,改善
待ち行列
ランダムな到着
ランダムな到着は,予測不可能な時間間隔で到着
すること
店舗の待ち行列では,ふつう,ランダムな到着
ある
現実世界の様々なシミュレーションに役立つ考え
ランダムな到着を考慮したシミュレーショによ
り,現実のシステムの挙動をリアルに再現でき,
システムの改善や最適化に役立つ
52
等間隔の到着
客が1時間(60分)の間に、12人来そう!
というとき
53
5分
5分ごとに1人ずつ来る
現実にはあり得ません
5分 5分
ランダムな到着
54
客は60分の間に、ランダムに到着
客が1時間(60分)の間に、12人来そう!
というとき
シミュレーションによる,仮説の検証の例
例えば,
スーパーのレジなどの待ち行列.
意外と,私の寸前に,別の人が並ぶことがある.
私の運が悪いのか?
No このことをシミュレーションで確認
55
演習
【トピックス】
待ち行列
ランダムな到着
ランダムな到着での到着間隔
を分析
56
新しく Excel 空白のブックを作る
0 以上 60 未満の乱数の式
=TRUNC( RAND() * 60 )」をセル A1 に書く
57
客が12人来るという状況をシミュレーションしたい
A1 の式を A2 から A12 に「コピー&貼り付け
右クリックメニューが便利
実行のたびに違う値になる
(乱数なので、ランダムな値)
58
A列にあるもの(式)について,
式の結果の「値」だけを.B列に「コピー&貼り付け
①まず,A1からA12
ドラッグして,範囲選択
②右クリック
メニュー
「コピー」
③値だけを張り付け
セルB1
右クリックして,「貼り付け
のオプション」の「
59
Excel のバージョンによっ
ては,違う場合がある
B列の値を並べ替えたい
①まず,B1からB12
範囲選択
60
続く
オンライン版 Excel での並べ替え
①まず,B1からB12
範囲選択
リボンで「データ
昇順で並べ替え
61
並べ替えのみ」を選ぶ
アプリ版での並べ替え
①まず,B1からB12
範囲選択
62
リボンで「データ並べ替え
もし,警告表示が出たら
並べ替え」をクリック
最優先されるキー」を
B」に設定して「OK
63
Bが,左のようになることを確認
次に,セル C2 に次の式を入れる
=B2-B1
これは,到着間隔を求める式
C2の式を, C3 から C12
「コピー&貼り付け」
右クリックメニューが便利
64
C確認
60分の間に 12人
平均で5分間隔
間隔はばらばら
0,1,2分のような小さな値も,
かなり多い
全体まとめ
1.乱数予測不可能な数
2.乱数ゲーム開発シミュレーションに活用。
ゲームではアイテムの配置や敵の行動をランダム
にするために使用。
3.一様分布等確率で分布し、偏りのない抽出やイ
ベント発生に利用。
4.モンテカルロシミュレーションでは乱数を使って
ランダムな試行を繰り返し、不確実性を考慮した
意思決定や近似解の算出に活用。
5.待ち行列では、ランダムな到着現実世界のシ
ミュレーションに役立つ考え方。ランダムな到着
を考慮したシミュレーションにより、現実のシス
テムの挙動をリアルに再現。
65
乱数の理解。学ぶことの満足感情報工学の
奥深さを実感。
シミュレーションへの乱数活用を知り、問題
解決力を向上
Excelを用いた乱数の生成、分析の演習。
践的スキルの向上
身近な問題を解決する「待ち行列シミュレー
ション」など、情報工学の有用性の実感
野の拡大
66