1.基本思想:
2.蒙特卡罗求圆周率:
算法示意图:
3.
import java.util.Random; import java.util.Scanner; /** * 蒙特卡罗圆周率算法思想: * @author Administrator * */ public class MonteCarlo { public static void main(String[] args) { int n; double PI; System.out.println("蒙塔卡罗概率算法计算圆周率:"); Scanner input =new Scanner(System.in); System.out.println("输入点的数量:"); n=input.nextInt(); PI=MonPI(n); System.out.println("圆周率:"+PI); } public static double MonPI(int n){ double PI; double x,y; int i,sum=0; for (i= 1; i< n; i++) { x=Math.random(); y=Math.random(); if((x*x+y*y)<=1){ sum++; } } PI=4.0*sum/n; return PI; } }
通过代码,我们可以看到,是通过求近似值,然后约等于真值,并且通过概率计算很难得到问题的精确解的.