鱼C论坛

 找回密码
 立即注册
查看: 77|回复: 3

[作品展示] 圆周率计算

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import random
def monte_carlo_pi(n_points):
    inside_circle = 0
    for _ in range(n_points):
        x = random.random()
        y = random.random()
        distance = x ** 2 + y ** 2
        if distance <= 1:
            inside_circle += 1
    return 4 * inside_circle / n_points
# 投点 1000000 次
approx_pi = monte_carlo_pi(1000000)
print(f"使用蒙特卡罗方法计算的圆周率近似值: {approx_pi}")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
使用蒙特卡洛方法计算圆周率(π)

你给出的代码是一个用蒙特卡洛方法估算圆周率的函数,但代码不完整。下面是完整的实现:
import random

def monte_carlo_pi(n_points):
    inside_circle = 0
    for _ in range(n_points):
        x = random.random()
        y = random.random()
        distance = x ** 2 + y ** 2
        if distance <= 1:
            inside_circle += 1
    return (inside_circle / n_points) * 4

# 示例:估算圆周率
print(monte_carlo_pi(1000000))

原理解释:

  • 在单位正方形内随机撒点(x, y),其中 xy 都在 [0, 1] 之间。
  • 如果点落在单位圆内(即 x^2 + y^2 <= 1),就计数。
  • 单位圆面积是 π/4,单位正方形面积是 1,所以圆内点的比例约为 π/4。
  • 最终用 (圆内点数 / 总点数) * 4 来估算 π。


这个方法简单直观,适合初学者理解概率与几何的结合。需要注意的是,点数越多,估算结果越精确。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
FishC 发表于 2025-3-31 20:36
使用蒙特卡洛方法计算圆周率(π)

你给出的代码是一个用蒙特卡洛方法估算圆周率的函数,但代码不完整。 ...

谢谢指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
18093037081 发表于 2025-03-31 20:37
FishC 发表于 2025-3-31 20:36
使用蒙特卡洛方法计算 ...


使用蒙特卡洛方法计算圆周率(π)

你给出的代码片段中断在了 if distance 这一行,下面是完整的函数实现,用于估算圆周率:
import random

def monte_carlo_pi(n_points):
    inside_circle = 0
    for _ in range(n_points):
        x = random.random()
        y = random.random()
        distance = x ** 2 + y ** 2
        if distance <= 1:
            inside_circle += 1
    return 4 * inside_circle / n_points

# 示例调用
print(monte_carlo_pi(1000000))

原理简述:  
蒙特卡洛方法通过在单位正方形内随机撒点,统计落在单位圆内的点的比例,来估算圆周率。因为单位圆面积是 πr^2(r=1),单位正方形面积是 1×1=1,所以:

π ≈ 4 × (圆内点数 / 总点数)

提示:  
点数越多,估算结果越接近真实的 π 值。你可以尝试不同的 n_points 值来观察精度变化。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-4 21:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表