1.概要
乱数で近似解を求める方法
乱数を用いて何度も試し、繰り返し、おおよその解を導き出す
偶然な数を使うことで正確な答えが出せるのか疑問だが
試行回数を増やすほど、真の値に近づくことが数学的に証明されている
サイコロを振れば振るほど、出た目の平均値が理論値に近づくのと同じ
2.円周率を求める
円の面積と円周率の計算を考えてみる
正方形の中に円を描く
正方形の中に点をランダムにたくさん打つ
正方形全体に打たれた点の数と、円の中に落ちた点の数を数える
円の中に落ちた点の数の割合は、円の面積と正方形の面積の割合に近い
割合と正方形の面積から、円の面積を計算することができる
円の面積が分かれば、そこから円周率を求めることができる
実際の計算
一辺2rの正方形の中にぴったり入る半径rの円を考える
この正方形の中に、ランダムに点を打つ
ある領域に入った点の数は、その領域の面積に比例するので
円の中に入った点の数/打った点の総数は
面積の比と同じになる πr2乗/(2r)2乗
約分すると π/4 となり
点の数を数えて4倍すれば、円周率の近似値になる
参考:東北大学理学部物理学科
http://www.cmpt.phys.tohoku.ac.jp/open-campus/2020/pi/
3.利点・欠点
メリット
直接計算が難しい問題でも比較的簡単に近似値を得られる
汎用性が高い
複雑な形状や条件を持つ問題
数式で表現することが難しい現象
多くの変数が絡み合うシステム 等に適用可能
アルゴリズムが単純
プログラムを書きやすい
実装が容易
幅広い利用者にとって扱いやすい
並列計算との相性が良い
複数の計算機を用いることで計算速度の大幅な向上が可能
デメリット
真値ではない、乱数の生成方法や試行回数を適切に設定する必要がある
近似解しか得られない
真の解との誤差を評価することは可能だが、
厳密な解が必要な問題には適していない
計算時間
試行回数を増やすほど精度は向上するが、
計算時間も増加し、計算コストが高くなる可能性がある
乱数の質への依存
質の低い乱数生成器を用いると、
計算結果の信頼性が低下する可能性がある