« PCまた絶不調&3年ぶりのマラソン大会復帰は10kmレース&心臓不調で控えめ18km走 | トップページ | ピアニスト反田恭平のデビューは12歳、指揮者で♪(『題名のない音楽会』振ってみまSHOW!)&15km走 »

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×(四分円の中の点の個数)/(正方形の中の点の個数)

  

230113a

    

というわけで、1辺の長さ1の正方形の中に、でたらめに多数の点を打つシミュレーションを行えば、円周率パイの近似値が求められる。こうした方法は、モンテカルロ法と呼ばれてて、私はAI関連の知識として一応、知ってた。

  

単純ででたらめな実験を多数(無数)行うのは、人間にはほぼ不可能。コンピューターやAIの独壇場となる。将棋や囲碁の形勢判断を示す評価値の計算も、基本的にはそうした無数の対局実験に基づく。

   

   

     ☆     ☆     ☆

230113bc

   

まず、エクセルで新しい空白の表を立ち上げて、左上(A1のセル、つまりマス目)から左に、個数、x、y、「円内なら1」と入力。

    

最後の文は、正確には、「4分円の内側なら1、それ以外なら0」で、最後にこの1をすべて足し算すれば、4分円内の点の個数になる。ちなみに、円周上の点は入らないが、どうせほとんど円周上にはならないから、計算には影響ない。

   

230113cc

  

A2のセルには、個数として 1 (半角数字)を入力。個数というより、多数の点につけた番号のこと。1番、2番、・・・。

  

xの下、B2のセルには、=RAND() と半角で入力。この数式だけで、なぜか0~1の間のでたらめな数が計算される。RAND は、英単語のrandom(でたらめ)より。私は初めて使ったけど、基本的な数式の1つらしい。

  

ちなみに、でたらめといっても、何かプログラムによって計算されてるわけだから、出て来る数は「疑似乱数」と呼ばれてる。これについては、いずれ、別記事で考えてみたい。

   

yの下、C2のセルにも、同じ数式(みたいな英字と記号)を入力。これで、そのxの値とyの値を座標に持つ正方形内の点(x,y)が1つ決まることになる。

   

230113d

  

「円内なら1」の下、D2のセルには、 =IF(B2*B2+C2*C2<1,1,0) と入力。

  

これは、「もしB2×B2+C2×C2<1なら、1。そうでなければ、0」を表す省略形の命令。高校数学なら、x²+y²<1という不等式に対応。左下の原点との距離の2乗が1未満ということ。

   

   

     ☆     ☆     ☆

230113ec

   

実際に入力して、エンターキーを押すと、上のようになった。xとyの値はたまたま小さいので、正方形の左下の頂点に近い点(x,y)。つまり、4分円の内側の点。よって、Dの列には自動的に 1 が出力される。

  

個数1の所の横のセル4つ(第2行目)を選択して、下側にドラッグで引っ張ると、自動的に2個目、3個目・・・の値も現れる。

  

230113f

 

個人的には、4つのセルの選択と引っ張る操作に何度も失敗してしまったが、何とかなった。普通に四角の角からポインター(矢印)を引っ張ろうとすると、途中で切れたり、左端の 1 という数字のコピーになったりしたのだ。あと、何か入力してエンターする度に、でたらめな数が勝手に変化するので戸惑った。

   

   

     ☆     ☆     ☆

続いて、点100個(第2行~第101行)のデータをまとめて、円周率πの近似値を計算する。

  

230113g

  

分かりやすさのために、Eの列は空けて、F、G、Hの列を利用。それぞれ、点の総数、円内の点の数、πの近似値と入力。

  

230113h

    

「点の総数」の下、F2のセルには、100 と入力。「円内の点の数」の下、G2のセルには、 =SUM(D2:D101) と入力。D2のセルからD101のセルまでにある、全ての 1 の和を求めることで、個数を求められる。

   

そして、「πの近似値」の下、H2のセルには、 =4*(G2/F2) という式を入力。要するに、4×(G2/F2)、つまり、4×(円内の点の数)/(点の総数)。

  

230113i

  

私が実際に試すと、最初のπの近似値は2.92と出た。3.141592・・と比べると、ちょっと小さい。2回目は確か、3.2くらいだった。これを何回も繰り返すのと、個数を1000個、10000個と増やすのと、どちらが正確な近似値になるのかは今のところ不明。いずれにせよ、確率統計的な話であって、厳密なπの計算ではない。

   

あと、元のファイルには、f9キーを押せば繰り返せると書かれてたが、私の場合には出来なかった。その代わり、何か適当なセルに入力してエンターしたり、削除したりすると、勝手に全ての数字が変化した。

   

   

     ☆     ☆     ☆

なお、円周率の計算は上ですべて完了してるが、聞き手や読み手へのプレゼンテーション的には、シミュレーションのグラフがあった方が分かりやすい。

     

xとyのデータをグラフ(散布図)にする一方、4分円のグラフは別に書いて、どちらかをコピーしてもう一方にペーストすると、下のようになった(私が作った図)。

  

230113j

    

円周の式は、y=√1-x²。xの値は、0から1まで、0.01刻みくらいに細かく取る。グラフの書き方やオートフィル(自動入力)の設定などは、元のファイルや別の情報を参照した。ここではもう、省略しよう。

    

230113k

   

新しい話に対応するのは疲れるが、面白いし、達成感もある。今日のところはこの辺で。。☆彡

   

      (計 2865字)

| |

« PCまた絶不調&3年ぶりのマラソン大会復帰は10kmレース&心臓不調で控えめ18km走 | トップページ | ピアニスト反田恭平のデビューは12歳、指揮者で♪(『題名のない音楽会』振ってみまSHOW!)&15km走 »

数学」カテゴリの記事

情報」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« PCまた絶不調&3年ぶりのマラソン大会復帰は10kmレース&心臓不調で控えめ18km走 | トップページ | ピアニスト反田恭平のデビューは12歳、指揮者で♪(『題名のない音楽会』振ってみまSHOW!)&15km走 »