蒙特卡罗方法为什么能算出圆周率?

3 个讲解板块 · 关联 1 款站内工具 · 内容最后核对 2026-10-08

往正方形里随机撒点,数一数有多少落在内切圆里,就能反推出圆周率——听起来不靠谱,但它确实收敛。

直接答案

当正方形边长取 2、内切圆半径取 1 时,圆面积是 π,正方形面积是 4,所以「落在圆内的点数 ÷ 总点数」这个频率会趋近于 π/4。把这个比值乘以 4,就得到 π 的估计值。

成立的关键是「均匀随机」:点落在正方形内任何位置的概率相同,那么落点的比例就等价于面积之比。点数越多估计越接近真值,误差量级大致按点数的平方根倒数下降,这也是它收敛偏慢的根本原因。

蒙特卡罗方法的思路是「用随机试验代替解析计算」。它不推导公式,而是反复做同一件随机的事,再统计结果的比例。用它可以估算圆周率,也可以估算积分、风险概率这类不容易写出闭式解的量。

它的价值不在于精度,而在于通用性:只要能把问题表达成「随机试验里某个事件发生的概率」,就能用同一套流程去估。代价是需要足够多的样本,而且结果带有随机误差。

1核心公式与几何关系

整套推导只用到面积之比这一个关系。

量表达式说明
正方形面积4边长 2,横纵坐标都取 -1 到 1
内切圆面积π半径 1,满足横纵坐标平方和不大于 1
落入比例π / 4面积之比,等于随机点落入的概率
π 估计值4 × 落入点数 ÷ 总点数用频率去近似概率

2三步就能自己复算

不需要写复杂代码,用电子表格或一段简单脚本就能验证。

  1. 每次试验生成两个 -1 到 1 之间的均匀随机数,当作点的横纵坐标。
  2. 判断横纵坐标的平方和是否不大于 1,是就记为落入圆内。
  3. 重复足够多次(比如十万次),用落入次数除以总次数再乘以 4,就是 π 的估计值。

把总次数从一万加到十万,你会发现结果波动变小,但改善并不惊人——这正是平方根收敛的特征。

3为什么误差不会很快变小

蒙特卡罗的误差来自随机性本身,不是实现精度问题,所以它有明确的下限规律。

收敛速度
误差大致与点数的平方根成反比,点数增加 4 倍,误差才减半
随机数质量
伪随机数分布不均匀会引入系统性偏差,比随机误差更难发现
维度影响
维度越高,达到同样精度所需的点数增长极快
可复现性
固定随机种子可以让同一批试验重复出完全相同的结果

相关疑问

点数越多结果就越准吗?

统计意义上是的,但准确度按平方根提升,不是线性提升。从十万点加到一百万点,误差大约只降到三分之一,所以不要指望靠堆点数得到高精度。

为什么要点数够多才接近 π?

因为它依据的是大数定律:试验次数足够多时,事件发生的频率才稳定趋近于它的概率。次数少时结果波动很大,纯属随机。

这个方法只能算 π 吗?

不是。同一个思路可以估算任意「能用几何比例或概率表达」的量,例如不规则图形的面积、积分值、随机过程超出某个阈值的概率。

固定随机种子会不会让结果失真?

不会。固定种子只让同一批试验可以复现,不影响分布均匀性,反而方便排查实现是否有偏差。

内容标识:本页内容由人工智能辅助生成,并经人工核对与编辑。详见 人工智能生成内容标识说明。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-08。若发现错误,欢迎通过页脚反馈入口告知。