蒙特卡罗方法为什么能算出圆周率?
往正方形里随机撒点,数一数有多少落在内切圆里,就能反推出圆周率——听起来不靠谱,但它确实收敛。
直接答案
当正方形边长取 2、内切圆半径取 1 时,圆面积是 π,正方形面积是 4,所以「落在圆内的点数 ÷ 总点数」这个频率会趋近于 π/4。把这个比值乘以 4,就得到 π 的估计值。
成立的关键是「均匀随机」:点落在正方形内任何位置的概率相同,那么落点的比例就等价于面积之比。点数越多估计越接近真值,误差量级大致按点数的平方根倒数下降,这也是它收敛偏慢的根本原因。
蒙特卡罗方法的思路是「用随机试验代替解析计算」。它不推导公式,而是反复做同一件随机的事,再统计结果的比例。用它可以估算圆周率,也可以估算积分、风险概率这类不容易写出闭式解的量。
它的价值不在于精度,而在于通用性:只要能把问题表达成「随机试验里某个事件发生的概率」,就能用同一套流程去估。代价是需要足够多的样本,而且结果带有随机误差。
1核心公式与几何关系
整套推导只用到面积之比这一个关系。
| 量 | 表达式 | 说明 |
|---|---|---|
| 正方形面积 | 4 | 边长 2,横纵坐标都取 -1 到 1 |
| 内切圆面积 | π | 半径 1,满足横纵坐标平方和不大于 1 |
| 落入比例 | π / 4 | 面积之比,等于随机点落入的概率 |
| π 估计值 | 4 × 落入点数 ÷ 总点数 | 用频率去近似概率 |
2三步就能自己复算
不需要写复杂代码,用电子表格或一段简单脚本就能验证。
- 每次试验生成两个 -1 到 1 之间的均匀随机数,当作点的横纵坐标。
- 判断横纵坐标的平方和是否不大于 1,是就记为落入圆内。
- 重复足够多次(比如十万次),用落入次数除以总次数再乘以 4,就是 π 的估计值。
把总次数从一万加到十万,你会发现结果波动变小,但改善并不惊人——这正是平方根收敛的特征。
3为什么误差不会很快变小
蒙特卡罗的误差来自随机性本身,不是实现精度问题,所以它有明确的下限规律。
- 收敛速度
- 误差大致与点数的平方根成反比,点数增加 4 倍,误差才减半
- 随机数质量
- 伪随机数分布不均匀会引入系统性偏差,比随机误差更难发现
- 维度影响
- 维度越高,达到同样精度所需的点数增长极快
- 可复现性
- 固定随机种子可以让同一批试验重复出完全相同的结果
相关疑问
点数越多结果就越准吗?
统计意义上是的,但准确度按平方根提升,不是线性提升。从十万点加到一百万点,误差大约只降到三分之一,所以不要指望靠堆点数得到高精度。
为什么要点数够多才接近 π?
因为它依据的是大数定律:试验次数足够多时,事件发生的频率才稳定趋近于它的概率。次数少时结果波动很大,纯属随机。
这个方法只能算 π 吗?
不是。同一个思路可以估算任意「能用几何比例或概率表达」的量,例如不规则图形的面积、积分值、随机过程超出某个阈值的概率。
固定随机种子会不会让结果失真?
不会。固定种子只让同一批试验可以复现,不影响分布均匀性,反而方便排查实现是否有偏差。
继续看:相关问题与资料
全部问题解答 →
内容标识:本页内容由人工智能辅助生成,并经人工核对与编辑。详见 人工智能生成内容标识说明。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-08。若发现错误,欢迎通过页脚反馈入口告知。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-08。若发现错误,欢迎通过页脚反馈入口告知。
速查在线工具箱