java 蒙特卡洛_java算法3_蒙特卡洛方法(Monte Carlo method)求PI和椭圆面积

蒙特卡洛方法,是一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数来解决很多计算问题的方法。蒙特卡洛方法的名字来源于摩纳哥的一个城市蒙特卡洛,该城市以×××业闻名,而蒙特卡洛方法正是以概率为基础的方法。这里我们使用这种方法求PI的值和椭圆的面积:

求PI:假设有一半径为1的圆,那么其面积就是PI的值,1/4圆的面积就是PI/4。现在有边长为1的正方形包括这1/4的圆,如下图所示:

9bce7083185604de074a2b4bef9354d9.png

现在我们随机求得正方形中的点,这些点有的在1/4圆内,假如在1/4圆内的点数为c,总点数为n,则PI/4:1=c:n,从而我们可以求出PI=4*c/n。

如何判断点落在圆内呢,涉及一点数学知识:对于圆,其函数为x的平方+y的平方等于1,对于某点坐标的x和y,x的平方和y的平方和小于1时,说明在圆内。

package com.cloud.algorithm;

public class PI {

public static void main(String[] args) {

int n = 100000;

int count = 0;

for (int i = 1; i < n; i++) {

double x = Math.random();

double y = Math.random();

if ((x * x + y * y) < 1) {

count++;

}

}

System.out.println("PI = " + (double) 4 * count / n);

}

}

对于求圆或者椭圆的面积,其实思路和这个是一模一样的,都是概率统计学的应用。唯一的一点区别就是如何判断点落在椭圆中,椭圆方程如下:

0be08cce0b5f9128d72cebea0dec2368.png

当小于1时,说明落在了椭圆内部。读者可以自己测试下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值