(Monte Carlo)蒙特卡罗方法计算圆周率π(java实现)

本文介绍了一种使用蒙特卡罗方法计算圆周率π的Java实现。蒙特卡罗方法是一种基于概率统计的数值计算方法,适用于解决复杂系统问题。文中详细解释了通过1/4圆面积与正方形面积比值计算π的原理,并提供了具体代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

蒙特卡罗方法计算圆周率π(java实现)
一、蒙特卡洛(Monte Carlo)方法简介
蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。
二、计算圆周率π的原理
通过1/4圆面积和正方形面积的比值可以求出和π相关的一个数值(原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。)
示意图1示意图二
代码如下:`package com.PI;

import java.util.Random;

public class Test_Pi {

/**
 * @param args
 */
public static void main(String[] args) {
int DARTS = 1000*1000;  
float hits = (float) 0.0;  
float dist;
float PI;
Random ra = new Random();
System.out.println();
long StartTime = System.currentTimeMillis(); //开始时间
for (int i = 0; i < DARTS; i++) {
	float x = ra.nextFloat();
	float y = ra.nextFloat();
	dist = (float) Math.sqrt((x*x) + (y*y));//点到圆心的距离小于或等于一即视为落点在圆内
	if (dist <= 1.0) {
		hits +=1;
	}
}
long EndTime = System.currentTimeMillis();//结束时间
PI = 4 * (hits/DARTS);//计算π的值
System.out.println("PI的值为:" + PI);
System.out.println("所用时间为:" + ( EndTime - StartTime));//计算最终使用时间
}

}
运行结果:
结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值