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;
}
}
通过代码,我们可以看到,是通过求近似值,然后约等于真值,并且通过概率计算很难得到问题的精确解的.