Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

モンテカルロ法を用いた球の体積の課題の質問

$
0
0
モンテカルロ法を使って半径1のD次元球の体積Vを求めるプログラムを作成せよという課題が出ましたがまったくもって手を付けれないため質問させていただきます。 またプログラムの仕様は以下のようなものであることとして ・乱数を生成する関数は自ら作成するか、言語に標準で用意されているものを利用。 ・次元の数D、点の数N、乱数の種SEEDは標準入力(キーボード)またはGUIで入力できること。 ・求めた体積Vの値を出力すること。 が条件とされています、参考として以下のプログラムが与えられております。 import java.util.Random; import java.io.*; public class Circle{ public static void main(String[] args) throws IOException { double x,y,ran; String s; BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Input: random seed"); s = buf.readLine(); long seed = Long.parseLong(s); System.out.println("Input: Number of trials"); s = buf.readLine(); long ntrial = Long.parseLong(s); Random rnd = new Random(); rnd.setSeed(seed); double r0=1.0; double r02=r0*r0; long nin=0; for(int i=0; i < ntrial; i++){ ran=rnd.nextDouble(); x=ran; ran=rnd.nextDouble(); y=ran; double r2=x*x+y*y; if(r2 < r02) nin=nin+1; } double area=4.0 * ((double)nin/(double)ntrial); System.out.println("ntrial="+ntrial+" area= "+area); } } どなたかお答えいただければと思います。

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>