用蒙特卡洛方法估算圆周率 π (python)

蒙特卡洛方法估算 π

原理:在单位正方形(边长为 1)内随机生成点(如上图)。计算落在单位圆(半径为 1)内的点的比例,根据公式 π ≈ 4 * (圆内点数 / 总点数) 估算 π 值。

并使用 matplotlib 绘制随机点分布图,蓝色点表示落在圆内的点,红色点表示落在圆外的点。绘制单位圆,直观展示点的分布情况。

首先,用函数estimate_pi来计算 π,参数:num_samples:随机生成的点的数量。返回值:pi_estimate:估算的 π 值;points_inside_x:圆内点的 x 坐标列表;points_inside_y:圆内点的 y 坐标列表;points_outside_x:圆外点的 x 坐标列表;points_outside_y:圆外点的 y 坐标列表。根据公式 π ≈ 4 * (圆内点数 / 总点数) 计算 π 的估算值。代码如下:

def estimate_pi(num_samples):
    """使用蒙特卡洛方法估算圆周率 π"""
    inside_circle = 0  # 记录落在圆内的点数
    points_inside_x = []  # 圆内点的 x 坐标
    points_inside_y = []  # 圆内点的 y 坐标
    points_outside_x = []  # 圆外点的 x 坐标
    points_outside_y = []  # 圆外点的 y 坐标

    for _ in range(num_samples):
        # 在单位正方形内随机生成点
        x = random.uniform(0, 1)
        y = random.uniform(0, 1)
        
        # 计算点到原点的距离
        distance = x**2 + y**2
        
        # 判断点是否在单位圆内
        if distance <= 1:
            inside_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

席子哥哥的代码库

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值