投稿

2月, 2023の投稿を表示しています

モンテカルロ法を使って円周率を求め続けるプログラムを作った

イメージ
こんにちは、こんばんは ある日、パソコンに負荷を与えたくなったのでこの記事を作りました。 円周率ってなんぞ? wiki 見てください。 いきさつ 手持無沙汰なパソコンが一つあって、リソースがもったいないなーと思っていました。 分かりやすくてマシンへの負荷が多くて面白い計算はないかなと考えていたところ、円周率の計算が思い当たりました。 負荷を与えるという点ではビュフォンの針でもよかったのですが、グラフでは表しづらく円と円周率の関係をわかりやすく表示できるものはないかなと考えて、モンテカルロ法を採用しました。 モンテカルロ法とは モンテカルロ法は円の公式に対してランダムな点を適当にとり、検証回数と当選回数(円の中に点が入った回数)の割合を求める方法です。 利点 ・計算がとても簡単 欠点 ・真の値を求めるために膨大な計算回数が必要 ・計算回数が多すぎて時間がかかりすぎる ・乱数のランダム性で結果が変わる 式 以下の式で求められます まず円の公式は \begin{align} (x-a)^2+(y-a)^2=r^2 \end{align} で表せられます。 そして原点に円を設定するとaは0になるので \begin{align} x^2+y^2=r^2 \end{align}  また半径は1に設定するとr=1になり \begin{align} x^2+y^2=1^2 \end{align} これを円の内側だけに入った点だけ取る条件式にすると \begin{align} \sqrt{x^2+y^2}<1 \end{align}  すべての円があって、そこに横縦それぞれ2ずつの正四角形があったとき、以下の図のようなイメージになります  その四角形の中に入るようにランダムに点を打っていったときに 円に入った点の数をNin、円に入らなかった点をNoutとします そうすると円周率は \begin{align} π=\frac{Nin}{Nout} \end{align}  効率的な円周率の計算方法 天才たちは日々、効率化をしています。よって円周率の求め方も効率...