Excel(表計算ソフト)を用いたシミュレーションの具体例、乱数による円周率の近似値計算~高校『情報Ⅰ』
手軽に理数系の記事を1本書こうとしたら、かなり手間取ってしまった。しかし、コンピューターを用いたシミュレーションというものの初体験にはなったから、簡単にまとめとこう。
ネットで普通に検索しても、かなりの知識や環境を前提とした敷居の高い記事ばかりがヒットする。ここでは、表計算ソフトならごく簡単に使ってるけど、シミュレーションも乱数の関数も全く経験がない・・という条件で、高校1年生や初心者向けに書いてみる。
そもそも、なぜこんな事を思いついたかというと、朝日新聞・朝刊(23年1月10日)の人気シリーズ記事「花まる先生」で、高校の新必修科目『情報Ⅰ』の授業が紹介されてたから。4領域の1つ「コンピュータとプログラム」の中の「モデル化とシミュレーション」の単元。
そこでは、数学や物理の世界で有名な「ランダムウォーク」(でたらめ歩き)が扱われてて、表計算ソフト「エクセル」を用いたことになってるが、具体的にどう使うのかは書かれてない。私の手元にある東京書籍の教科書でも、ランダムウォークという言葉は載ってるけど、具体的なシミュレーションのやり方までは書いてない。
そこで、丁寧な説明を探すと、修道大学のpdfファイルを発見。有難く読ませて頂いたが、それでも全く初めての私が1人でやってみると、何度もつまづいてしまった。ちなみに私が使用した端末は、Windows10のPC。エクセルのヴァージョンは、サプスクリプションのMicrosoft365のものだから、最新に近いと思う。
☆ ☆ ☆
では、円周率π(パイ)の近似値を、シミュレーションで求めてみよう。有名な実験らしくて、似た説明はネット上に多数ある。
1辺の長さ1の正方形の頂点から、半径1の四分円(中心角90度の扇形)を書くと、
(四分円の面積)=1×1×π×1/4=π/4
(正方形の面積)=1
一方、その正方形の中にランダム(でたらめ)に多数の点を打つと、
(四分円の中の点の個数)/(正方形の中の点の個数)
≒(四分円の面積)/(正方形の面積)
=π/4
∴ 円周率 π ≒ 4×(四分円の中の点の個数)/(正方形の中の点の個数)
というわけで、1辺の長さ1の正方形の中に、でたらめに多数の点を打つシミュレーションを行えば、円周率パイの近似値が求められる。こうした方法は、モンテカルロ法と呼ばれてて、私はAI関連の知識として一応、知ってた。
単純ででたらめな実験を多数(無数)行うのは、人間にはほぼ不可能。コンピューターやAIの独壇場となる。将棋や囲碁の形勢判断を示す評価値の計算も、基本的にはそうした無数の対局実験に基づく。
☆ ☆ ☆
まず、エクセルで新しい空白の表を立ち上げて、左上(A1のセル、つまりマス目)から左に、個数、x、y、「円内なら1」と入力。
最後の文は、正確には、「4分円の内側なら1、それ以外なら0」で、最後にこの1をすべて足し算すれば、4分円内の点の個数になる。ちなみに、円周上の点は入らないが、どうせほとんど円周上にはならないから、計算には影響ない。
A2のセルには、個数として 1 (半角数字)を入力。個数というより、多数の点につけた番号のこと。1番、2番、・・・。
xの下、B2のセルには、=RAND() と半角で入力。この数式だけで、なぜか0~1の間のでたらめな数が計算される。RAND は、英単語のrandom(でたらめ)より。私は初めて使ったけど、基本的な数式の1つらしい。
ちなみに、でたらめといっても、何かプログラムによって計算されてるわけだから、出て来る数は「疑似乱数」と呼ばれてる。これについては、いずれ、別記事で考えてみたい。
yの下、C2のセルにも、同じ数式(みたいな英字と記号)を入力。これで、そのxの値とyの値を座標に持つ正方形内の点(x,y)が1つ決まることになる。
「円内なら1」の下、D2のセルには、 =IF(B2*B2+C2*C2<1,1,0) と入力。
これは、「もしB2×B2+C2×C2<1なら、1。そうでなければ、0」を表す省略形の命令。高校数学なら、x²+y²<1という不等式に対応。左下の原点との距離の2乗が1未満ということ。
☆ ☆ ☆
実際に入力して、エンターキーを押すと、上のようになった。xとyの値はたまたま小さいので、正方形の左下の頂点に近い点(x,y)。つまり、4分円の内側の点。よって、Dの列には自動的に 1 が出力される。
個数1の所の横のセル4つ(第2行目)を選択して、下側にドラッグで引っ張ると、自動的に2個目、3個目・・・の値も現れる。
個人的には、4つのセルの選択と引っ張る操作に何度も失敗してしまったが、何とかなった。普通に四角の角からポインター(矢印)を引っ張ろうとすると、途中で切れたり、左端の 1 という数字のコピーになったりしたのだ。あと、何か入力してエンターする度に、でたらめな数が勝手に変化するので戸惑った。
☆ ☆ ☆
続いて、点100個(第2行~第101行)のデータをまとめて、円周率πの近似値を計算する。
分かりやすさのために、Eの列は空けて、F、G、Hの列を利用。それぞれ、点の総数、円内の点の数、πの近似値と入力。
「点の総数」の下、F2のセルには、100 と入力。「円内の点の数」の下、G2のセルには、 =SUM(D2:D101) と入力。D2のセルからD101のセルまでにある、全ての 1 の和を求めることで、個数を求められる。
そして、「πの近似値」の下、H2のセルには、 =4*(G2/F2) という式を入力。要するに、4×(G2/F2)、つまり、4×(円内の点の数)/(点の総数)。
私が実際に試すと、最初のπの近似値は2.92と出た。3.141592・・と比べると、ちょっと小さい。2回目は確か、3.2くらいだった。これを何回も繰り返すのと、個数を1000個、10000個と増やすのと、どちらが正確な近似値になるのかは今のところ不明。いずれにせよ、確率統計的な話であって、厳密なπの計算ではない。
あと、元のファイルには、f9キーを押せば繰り返せると書かれてたが、私の場合には出来なかった。その代わり、何か適当なセルに入力してエンターしたり、削除したりすると、勝手に全ての数字が変化した。
☆ ☆ ☆
なお、円周率の計算は上ですべて完了してるが、聞き手や読み手へのプレゼンテーション的には、シミュレーションのグラフがあった方が分かりやすい。
xとyのデータをグラフ(散布図)にする一方、4分円のグラフは別に書いて、どちらかをコピーしてもう一方にペーストすると、下のようになった(私が作った図)。
円周の式は、y=√1-x²。xの値は、0から1まで、0.01刻みくらいに細かく取る。グラフの書き方やオートフィル(自動入力)の設定などは、元のファイルや別の情報を参照した。ここではもう、省略しよう。
新しい話に対応するのは疲れるが、面白いし、達成感もある。今日のところはこの辺で。。☆彡
(計 2865字)
| 固定リンク | 0
« PCまた絶不調&3年ぶりのマラソン大会復帰は10kmレース&心臓不調で控えめ18km走 | トップページ | ピアニスト反田恭平のデビューは12歳、指揮者で♪(『題名のない音楽会』振ってみまSHOW!)&15km走 »
「数学」カテゴリの記事
- 4×9=36マスの格子を、8つの長方形(1~8マス)に区切る方法~開成中2025年入試、算数・問題2の解き方(2025.02.15)
- パズル「ナンスケ」の解き方、考え方14~難易度3、ニコリ作、朝日新聞be、2025年2月8日(2025.02.09)
- かけ算の九九の表で、長方形で囲まれた数を足して315になる場合~灘中学校2025年入試、算数1・問題6の解き方(2025.02.07)
- 動画配信のおすすめ作品など、商業サイトでお薦めを決める方法と計算回数~2025年共通テスト・旧情報関係基礎・第2問(2025.02.04)
- パズル「絵むすび」33、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2025年1月25日)(2025.01.26)
「情報」カテゴリの記事
- 動画配信のおすすめ作品など、商業サイトでお薦めを決める方法と計算回数~2025年共通テスト・旧情報関係基礎・第2問(2025.02.04)
- スーパー(小売店)の全国チェーンの情報システム、商品配送、顧客会員管理 ~ 2025年共通テスト・情報 I ・第2問・A(2025.01.20)
- NOT回路(ゲート)、AND回路、OR回路を組み合わせた設計、論理回路の問題の解き方、考え方~ 高校『情報 Ⅰ 』(2024.11.02)
- ps5.js Web Editor(Processing)のプログラミングでお絵描き、アニメーション作成~ 高校教科書『情報 II 』(東京書籍)(2024.08.22)
- 2進法の計算、直接的な減法(引き算)と、コンピューター内部で「2の補数」を用いる減算 ~ 高校『情報Ⅰ』(2024.06.04)
コメント