蒙地卡罗法求 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 stub
         System.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 ;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值