鱼C论坛

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

[作品展示] 圆周率计算

[复制链接]
发表于 2025-3-31 20:36:12 | 显示全部楼层 |阅读模式

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

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

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}")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

  1. import random

  2. def monte_carlo_pi(n_points):
  3.     inside_circle = 0
  4.     for _ in range(n_points):
  5.         x = random.random()
  6.         y = random.random()
  7.         distance = x ** 2 + y ** 2
  8.         if distance <= 1:
  9.             inside_circle += 1
  10.     return (inside_circle / n_points) * 4

  11. # 示例:估算圆周率
  12. print(monte_carlo_pi(1000000))
复制代码


原理解释:

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


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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

谢谢指点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


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

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

  1. import random

  2. def monte_carlo_pi(n_points):
  3.     inside_circle = 0
  4.     for _ in range(n_points):
  5.         x = random.random()
  6.         y = random.random()
  7.         distance = x ** 2 + y ** 2
  8.         if distance <= 1:
  9.             inside_circle += 1
  10.     return 4 * inside_circle / n_points

  11. # 示例调用
  12. print(monte_carlo_pi(1000000))
复制代码


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

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-5 18:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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