概率算法

思想:
根据概率统计的思路来解决问题,结果得到的是近似值;适合于那些没有或者很难计算解析的问题;

概率算法基本步骤:
1、将问题转换为相应的集合图形S,S的面积容易计算,问题的结果往往对应集合图形中某一部分S1的面积;
2、然后向集合图形中随机撒点;
3、统计集合图形S和S1中的点数,根据图形S和S1之间的面积关系和各图形中的点数来计算结果;
4、判断上述结果是否在需要的精度之内,达到精度输出结果,否则重复第二步操作;

实例:
计算圆周率π的值;
在这里插入图片描述

import java.util.Scanner;

/**
 * @ClassName TestDemo10
 * @Description 概率算法
 * @Author lzq
 * @Date 2018/11/30 11:51
 * @Version 1.0
 **/
public class TestDemo10 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入撒点数:");
        int n = scan.nextInt();
        System.out.println("PI="+montePi(n));
    }

    public static double montePi(int n) {
        double PI,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;
    }
}

请输入撒点数:
500000
PI=3.141576

猜你喜欢

转载自blog.csdn.net/QQ2899349953/article/details/84647007
今日推荐