• ベストアンサー

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

ARCの回答

  • ベストアンサー
  • 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
質問者

お礼

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

関連する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までしか計算できていません。 こんなものなんでしょうか?

  • 円周率は割り切れる。

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

  • 円周率について

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