概率算法
概率算法依照概率统计的思路来求解问题,其往往不能得到问题的精确解,但是在数值计算领域得到了广泛的应用。因为很多数学问题,往往没有或者很难计算解析,此时便需要通过数值计算来求解近似值。
概率算法执行基本过程:
1. 将问题转化为相应的几何图形S,S的面积容易计算,问题的结果往往对应几何图形中一部分S1的面积。
2. 然后,向几何图形中随机撒点。
3. 统计几何图形S和S1中的点数。根据S和S1面积的关系及各图形中的点数来计算得到结果。
4. 判断上述结果是否在需要的精度内,如果未达到精度则执行步骤(2)。如果达到精度,则输出结果。
计算圆周率 π
public class P3_5 {
static double MontePI(int n){
double PI;
double x,y;
int i,sum;
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;
}
public static void main(String[] args) {
int n;
double PI;
System.out.println("概率算法!");
Scanner input = new Scanner(System.in);
n = input.nextInt();
PI = MontePI(n);
System.out.println("PI = " + PI);
}
}