• 締切済み

乱数

乱数x、y(0〈x〈1)、(0〈y〈1)をn回発生させて、これらを座標とする点をx‐y座標平面上にプロットしてこの点と原点との距離が1以下となるときの回数をカウントしm回としてn:m=(長さ1の正方形の面積):(円の4分の1の面積)となる。これを利用して円周率を求めるプログラムなんてどう作るんですか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

モンテカルロ法というやつでしょう。 1.第1系列の乱数発生させる。 そのままで0.X・・の大きさの数のはず。 2.第2系列の乱数発生させる。 大きさは0.x・・。 以上でp=(x、y)という一点が決まる。これは 第1象限の辺1の1x1の正方形の中の1点です。 3.てんpと原点との距離を計算する   d=SQR(X^2+y^2) またはd=SQR(X*X+Y*Y) 4.もしd<=1であれば円内の点としてカウント 5.円内の点の数/試行回数が3や3.1、3.14付近になれば、この試行は納得というところ。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

質問文に、ほぼ書かれているとおりです。 距離を求めるには sqr(x*x+y*y) とします。

関連するQ&A