这里是转换为几何图形,利用点的分布计算出圆周率,画的不好看,明白怎么回事就行
以正方形的变长为1,圆形的半径为1,那么我知道知道第一象限圆的面积为π/4,然后正方形的面积为1,那么我们可以通过落入圆形中的点数占的比例来估计π的值,顺便提一句,这个算法也叫蒙特卡洛概率算法
以正方形的边长为1,圆形的半径为1,就知道第一象限圆的面积为π/4,然后正方形的面积为1,那么我们可以通过落入圆形中的点数占的比例来估计π的值,这个算法也叫蒙特卡洛概率算法
public class Test1 {
public static void main(String[] args) {
System.out.println("请输入取点数");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
//调用方法进行计算
double pi = getPI(n);
System.out.println(pi);
}
public static double getPI(int n){
double pi = 0.0;
double x , y;
int res = 0;
for(int i = 0; i < n; i++){
x = Math.random();
y = Math.random();
//这里根据勾股定理进行计算,根据点到原点的距离判断该点是否在圆内,如果距离小于1,这说明在圆圈内,结果加1
if((x * x + y * y) < 1){
res++;
}
}
//这里必须写4.0 或者把4定义为double类型 否则4默认是int型 会发生数据类型转换
pi = 4.0 * res / n;
return pi;
}
}