蒙特卡洛方法,是一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数来解决很多计算问题的方法。蒙特卡洛方法的名字来源于摩纳哥的一个城市蒙特卡洛,该城市以×××业闻名,而蒙特卡洛方法正是以概率为基础的方法。这里我们使用这种方法求PI的值和椭圆的面积:
求PI:假设有一半径为1的圆,那么其面积就是PI的值,1/4圆的面积就是PI/4。现在有边长为1的正方形包括这1/4的圆,如下图所示:

现在我们随机求得正方形中的点,这些点有的在1/4圆内,假如在1/4圆内的点数为c,总点数为n,则PI/4:1=c:n,从而我们可以求出PI=4*c/n。
如何判断点落在圆内呢,涉及一点数学知识:对于圆,其函数为x的平方+y的平方等于1,对于某点坐标的x和y,x的平方和y的平方和小于1时,说明在圆内。
package com.cloud.algorithm;
public class PI {
public static void main(String[] args) {
int n = 100000;
int count = 0;
for (int i = 1; i < n; i++) {
double x = Math.random();
double y = Math.random();
if ((x * x + y * y) < 1) {
count++;
}
}
System.out.println("PI = " + (double) 4 * count / n);
}
}