• ベストアンサー

乱数による円周率の求め方

乱数を発生させて円周率を求める方法があると聞いたことがあるのですが どのように計算をしたらいいのでしょうか

  • frank
  • お礼率42% (249/587)

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

このように、乱数を使って擬似的に数値を求める方法を「モンテカルロ法」といいます。 手元の「アルゴリズム辞典」では、乱数によってπを求める方法が3つ記述されています。 一番分かりやすそうなのが、#1,ita3さんが仰ってるやリ方ですね。 「一辺の長さが1の正方形領域にランダムに点を置いていくと、それが半径1の円内に入る確率はπ/4である。これを逆に使って、πを求める」んだそうです。 昔、プログラムの勉強をする時に、これを作って遊んだ記憶があります。 ちなみに、紹介されている3つの中では一番不正確な方法らしいです。 VBAで書けば、以下のようになります。 (ワードやエクセルのマクロに登録すれば、実行できます。) Dim Ct As Long  'Counter Dim Hit As Long '円内に入った点の数 Dim X As Double Dim Y As Double Dim Ret As Long Do   '何回施行したかカウント   Ct = Ct + 1   '点の位置をランダムで決定   X = Rnd()   Y = Rnd()   '点の位置が円内かどうかを判定   If X * X + Y * Y < 1 Then     Hit = Hit + 1   End If   '1万回試行するごとに結果を表示   If Ct Mod 10000 = 0 Then     Ret=MsgBox(Ct & "回試行しました" & vbNewLine _       & "現在の結果は " & 4*Hit / Ct & vbNewLine _       & "続けますか?" _       , vbYesNo)     If Ret = vbNo Then       Exit Do     End If   End If Loop グラフィックとか使ってやってみると、結構面白いですよ。 ちなみに、Excel上で10万回試行した結果は、3.1416でした。 これ以外の方法は 「0~1の一様乱数をX座標とする、半径1の円状の点のY座標の期待値がπ/4であることを使う」 「数値積分に関しては、乱数のかわりに、『準乱数』(単純な計算により生成される乱数もどき)を使えばより正確な結果を得られる。ことを利用する」 が紹介されています。どちらも、イマイチ理解しきれないので、詳しい説明は出来ませぬ(笑)。 準乱数を使う方式では、1000回の試行で3.14154まで得られたそうです。 参考文献 技術評論社 「コンピュータ アルゴリズム辞典」 ISBN4-87408-913-5 C3055 定価\2,300

frank
質問者

お礼

ありがとうございました 友達に試してもらったところ 確かに回数を増やせば近い値が出たとのことです

その他の回答 (4)

  • TCM
  • ベストアンサー率44% (81/181)
回答No.5

 こんばんは、TCMと申します。回答は出揃っているようですので、ちょっと#3のARCさんの補足をいたします。  ARCさんのご回答の第2の方法はこういうことです。半径1の円の第1象限について考えます。0から1のX軸上に乱数を落とします。それに対応する円周上の点のY座標は√(1-x^2)です。そして微小線分dx上に乱数が落ちる確率がdx/1であることを考えると、Y座標の期待値は、   ∫√(1-x^2)dx=π/4 となります。ただし積分範囲は0から1です。この方法は、円の第1象限の内と外に乱数を落とす場合と比べると、if文が不必要なかわりにsqrt文が必要になりますので、どっちもどっちかなと思います。  第3の方法は、第2の方法において乱数のかわりに等間隔に分布する準乱数を使うものです。まあ、一種の矩形則による数値積分みたいなもんです。でも、そんなことをするくらいなら台形則なり、シンプソン法などで素直に数値積分した方が早いし正確です。これは実は第1の方法にもいえることですけど、この円周率を求めるというのがモンテカルロ法の説明にちょうどいい材料ですので、あんまり文句はいえません。

  • yusky
  • ベストアンサー率0% (0/1)
回答No.4

モンテカルロ法と言って、弓を射って的中の確率を計算する方法なんだそうですね。 若い頃ベーシックでプログラミングして計算した経験があるので自信はあります。 1時間位計算を続けていくと3.14までは収束するのですが あまり精度は上がらなかったと記憶しています。 専門的にみればダサいプログラムかもしれませんが、内心は自慢のものです。 現在でもRUNします。 他の読者の方でも要請があればプリントアウトしたものをお送りできます。

noname#1745
noname#1745
回答No.2

ita3さんの回答がそうなのかと思いますが、 今から20年ほど前、大学生のとき、 モンテカルロ法という名前で、コンピュータ実習にて 有りました。 モンテカルロ法で検索すれば、何か別の切り口が 見つかると思います。

  • ita3
  • ベストアンサー率67% (25/37)
回答No.1

こういうのが見つかりました。 原理的には、x,yの点を0~1までの間で乱数発生させて かなりの数をやってみると、入る確率は、πを使った 面積の中に入るというもののようです。 なにやらやってみたところ、かなりの回数やらないと 精度が出ないそうです。でもやって見る人って尊敬します。

参考URL:
http://www.asahi-net.or.jp/~JZ6H-YMMT/sandbox/pie.htm

関連するQ&A

  • 円周率について

    小学生の頃は円周率は3、14で計算するのに中学じゃπで計算するのは何故でしょうか? 後、円周率をπで表すのは何でですか?

  • 円周率の求め方

    円周率は3,141592…… などといいますが、 どのような式から出ている答えなんで すか? 知ってる方、教えてください ... 現在は、無限級数展開を利用する方法が一般的 ですが、アルキメデスは円に内接、外接する正多角形の周長で計算し、3桁 円周を測る 円を作って転がして求める方法。(やりやすい方法と実測値). 再帰的に円周 率を求める方法. 正n角形の面積 円に内接や外接する正n角形の面積から円周率を 求めます。 正2n角形の周りの長さ 円に内接2n角形の周りの長さの求め方. 確率で円周 率

  • 円周率の計算はなんのため?

    円周率の計算はなんのため? 最近、自作PCで円周率を5兆桁まで計算したというのが話題になりました。 円周率の話題が出るたびに思いますが、何のために計算するのですか? 学者やマニアがおもしろがってやってるだけですか? どうも、円周率の桁数はどうでもよく、計算機の性能を自慢したいだけのような気がしますが・・・どうなのでしょうか。

  • 円周率

    wikiによりますと円周率は、「2016年の時点では、円周率は小数点以下22兆4591億5771万8361桁まで計算されている。」とありますが、どうしてこの計算結果が正しいとわかるのでしょうか? これが正しいと判断するのは、円周と直径も同様に精密に測定する必要があると思いますが、現代の技術でこれだけの高い精度で測定ができるのですか?

  • 円周率って?

    お尋ねします。円周率(π)ってありますよね。あの3.141592・・・という無限小数。その数字はいったいどのように計算しているのでしょうか?公式のようなものがありますか?そもそも円周率とは何でしょうか?子供から質問されて答えられませんでした。分かりやすく教えていただければ幸いです。また、分かりやすく解説しているHPなどがありましたら教えていただけないでしょうか。

  • 円周率は何割る何で求まりますか?

    円周率を出すにはどうすればいいのでしょうか? 一度自分で計算してみたかったのです。 具体的な数字を教えてもらえませんでしょうか? 何/何ですか? 3.14.....ってなるように計算したいです よろしくお願いします

  • 円周率の「3.14159・・・」って?

    こんにちは~☆ 今度、教科書で円周率が「3」になりましたね。 円周率の「3.14159・・・」ってどういった計算式からしているのか 子供の時から疑問に思っておりました。 PCのベンチテスト(東大・金田教授)にも、取り入れられていますね。 やはりかなり複雑な計算式なのでしょうか? 当然、10÷3=と言うような簡単な式ではないのでしょうね。(笑) ご存知の方、よろしくお願い致します。

  • 円周率

    円周率の計算で π/4=1-1/3+1/5-1/7+1/9・・・ という式は収束が遅いということですが、 今javaで計算しているのですが、24時間を越えて1/33081000000の項まで計算し、 3.141592653までしか計算できていません。 こんなものなんでしょうか?

  • 円周率は割り切れる。

    何億桁も計算されている円周率ですが、無限ということはないと思います。 理由:現実として、直径と円周は存在し、一定の割合を持って事実上存在している。 この考え方は正しいですか?

  • 円周率について

    初歩的な質問ではずかしいのですが、円周率の近似値についての質問です。アルキメデスの方法では円に内接・外接する正多角形で円周率の上限、下限を計算するため、何桁まで信頼できるのか、判定できますが、マチンの公式などの、級数によって近似値を求める場合、何桁まで信頼できるのかの判定はどのようにしているのでしょうか。ご存じの方がおりましたら、教えて下さい。