本文主要是介绍蒙地卡罗法求 PI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/**
* 蒙地卡罗法求 PI
*
* 蒙地卡罗为摩洛哥王国之首都,该国位于法国与义大利国境,以赌博闻名。蒙地卡罗的基本原理为以乱数配合面积公式来进行解题,
* 这种以机率来解题的方式带有赌博的意味,虽然在精确度上有所疑虑,但其解题的思考方向却是个值得学习的方式。
算法说明:蒙地卡罗的解法适用于与面积有关的题目,例如求PI值或椭圆面积,这边介绍如何求PI值;假设有一个圆半径为1,所以四分之一圆面积就为PI/4,而包括此四分之一圆的正方形面积就为1,则有1/4圆的面积比上正方形面积,可以用落在园内和圆外的点数来进行模拟比例,即PI/4 = 落在圆内的点数n / 落在这个正方形中所有的点数* @param args*/
public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(calculate_PI());
}public static double calculate_PI() {double sum = 0;//设定点的个数final double COUNT_NUMBER = 50000;double index_X;double index_Y;for (int i = 0; i < COUNT_NUMBER; i++) {//将一个点的横, 纵坐标通过Math.random函数随机出来index_X = Math.random() ;index_Y = Math.random();//当满足 x ^ 2+ y^ 2<= 1时即满足条件,将sum值增加if (Math.pow(index_X, 2) + Math.pow(index_Y, 2) <= 1) {sum++;}}return ( 4 * sum )/COUNT_NUMBER ;
}
这篇关于蒙地卡罗法求 PI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!