[問題] 請問是哪裡做錯了呢?
利用蒙地卡羅法求解圓周率。
import java.util.Random;
import java.util.Scanner;
public class Java_09
{
public static void main (String args[]) {
System.out.println("請輸入一長整數,使用蒙地卡羅法求解圓周率... ");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
Random r = new Random();
long sum=0;
for(long i=1; i<=n; i++) {
double x = r.nextDouble();
double y = r.nextDouble();
if(x*x+y*y<=1)
{
sum++;
}
}
System.out.println((double) 4*sum/(n));
}
}
假設輸入數值為 1234567
執行結果為 3.1405828926.... 正確答案是 3.1416002533...
我猜是我程式碼數值錯誤,但是我改了改仍是不對,請問是哪裡做錯了??
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.47.126
※ 文章網址: https://www.ptt.cc/bbs/java/M.1433168939.A.ABF.html
→
06/01 23:15, , 1F
06/01 23:15, 1F
→
06/01 23:24, , 2F
06/01 23:24, 2F
→
06/01 23:26, , 3F
06/01 23:26, 3F
→
06/01 23:27, , 4F
06/01 23:27, 4F
→
06/01 23:28, , 5F
06/01 23:28, 5F
→
06/01 23:33, , 6F
06/01 23:33, 6F