乱数を使った円周率の求め方
2016年10月18日 (火) 投稿者: メディアコンテンツコース
こんにちは、コンテンツコースの加納です。
以前、相川先生が 円周率を求める という記事で、プログラムで円周率を計算する方法を紹介されていました。
私も円周率が大好きで、小学生の頃には必死で円周率を暗記し、中学高校では円周率の求め方を学び、大学でプログラミングを習得してからはさまざまな方法で円周率を計算してきました。「円周率1000000桁表」は、私のお気に入りの本の一つです。
今日は、さまざまな円周率の求め方の中から、乱数(ランダムな数)を使った方法を一つ、紹介しようと思います。
まず、次の図のような一辺が1の正方形領域と、それに内接する四分円(四分の一の円)を考えます。
このとき、正方形の面積は 1×1 = 1 であり、四分円の面積は π×1×1×1/4 = π/4 であることがわかります。この正方形に内部に、ランダムに1点を打ったとき、その点が四分円の中に入る確率はいくつになるでしょうか?
確率は (起こりうる事象) / (全事象) で表されるため、点が正方形の中の四分円に入る確率は、 (四分円の面積) / (正方形の面積) = π/4 となります。すなわち、ランダムに何度も点を打っていけば、その確率は π/4 という数値に近似していき、それを4倍することで円周率を求めることができるというわけです。
実際に、0以上1未満の乱数を使って、100個の点を打ち込んでみると、以下のようになりました。赤い点が四分円の内部、青い点が外部であることを表しています。
100個中79個が四分円の中に入っていたため、確率は 79/100 = 0.79 となり、円周率は 4×0.79 = 3.16 となりました。それらしい値になっています。
1000個の点を打ち込むと、以下のようになりました。788個が四分円の中に入ったため、円周率は 3.152 と計算されます。
10000個の点を打ち込むと、以下のようになりました。7855個が四分円の中に入ったため、円周率は 3.142 と計算されます。
10000000個の点を打ち込むと、以下のようになりました。7853434個が四分円の中に入ったため、円周率は 3.1413736 と計算されます。
点の数を増やせば増やすほど、円周率の値に近づいていくことがわかります。しかし、1千万個の点を打っても、正しく求められているのは「3.141」までです。乱数を使った円周率の求め方は、考え方は簡単な一方で、収束が非常に遅い(そして不安定)というデメリットを持つため、残念ながらあまり実用的ではありません。しかし、こんな風に円周率が求まるなんて、興味深いですよね。
ちなみに、このような乱数を使った計算方法は、モンテカルロ法と呼ばれます。モンテカルロ法で円周率を求める方法は他にも存在しますので、またの機会にご紹介できればと思います。
(コンテンツコース 加納)
「高校生向け」カテゴリの記事
- チュラロンコン大学からのインターン学生との再会(2019.03.14)
- 大学院授業:プロシージャルアニメーション特論の紹介(2019.03.08)
- ゲームの学会?!(2019.03.07)
- 香港理工大学デザイン学部の紹介(2019.03.04)
- 香港理工大学デザイン学部を訪問し、学部長Lee先生にお会いしました!(2019.03.03)