前提・実現したいこと
プログラミング初心者です。
モンテカルロ法で円周率の近似値を求めるプログラムを作成しています。
円周率の近似値なのでpaiの値は3.0付近になると思うのですが、paiの値が12.0~14.0になってしまいます。
初心者で初歩的な質問ですが、ご回答いただければ幸いです。
よろしくお願いいたします。
該当のソースコード
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Random rand = new Random(); Scanner stdIn = new Scanner(System.in); System.out.print("回数を入力:"); int n = stdIn.nextInt(); System.out.println(n); int r = 0; int i = 1; while(i<=n){ //x,y座標の乱数発生 double x = rand.nextDouble(); double y = rand.nextDouble(); //x^2+y^2を求める double a = (x * x ) + ( y * y); if(a<=1){ r = r + 1; } else{ i = i + 1; } } //円周率の計算 double pai = 4 * ( r / n ); //paiを表示 System.out.println("円周率の近似値は" + pai + "です。"); }
}
試したこと
if文内が間違っていると思い修正してみましたが、やはりpaiの値が12.0前後になってしまいました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/26 13:28