蒙特卡罗法python
时间: 2023-10-13 19:11:06 浏览: 76
蒙特卡罗法是一种基于随机采样的数值计算方法,常用于求解概率、统计、物理等问题。下面是一个简单的用Python实现蒙特卡罗法的例子:
假设有一个圆和一个正方形,圆的半径为1,正方形的边长也为1。我们需要通过蒙特卡罗法来估计圆的面积。具体方法是在正方形内随机生成一些点,然后统计有多少个点落在圆内,最后用落在圆内的点数除以总点数,乘以正方形的面积,即可估算出圆的面积。
代码如下:
```python
import random
# 生成随机点
def generate_point():
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
return x, y
# 判断点是否在圆内
def in_circle(x, y):
if x**2 + y**2 <= 1:
return True
else:
return False
# 蒙特卡罗法估算圆的面积
def estimate_area(num_points):
count = 0
for i in range(num_points):
x, y = generate_point()
if in_circle(x, y):
count += 1
area = 4 * count / num_points
return area
# 测试
print(estimate_area(100000))
```
输出结果会随着生成的随机点数的增加而越来越接近圆的真实面积(π),例如当生成10万个随机点时,输出结果大约为3.14164。
阅读全文