几何概率 · Monte Carlo

随机投米

向正方形内随机撒下大量米粒,统计落入内切圆的比例,用蒙特卡洛方法估算圆周率 π。

§

游戏规则

  • 目标向正方形内撒米,用落入内切圆的比例估算 π。
  • 操作点击批量按钮撒米,大量投掷时分波揭示。
  • 判定米粒落在圆内记 1,落在圆外记 0,恰好落在圆上则重投。
  • 原理π ≈ 4 × K / N,其中 K 为圆内米粒数,N 为总数。
实验画面

🍚 随机投米 · 蒙特卡洛估算 π

蓝色米粒落在内切圆内,红色米粒落在圆外。

📐 判定方式:0/1 判定
每粒米的位置由两个独立均匀随机数决定。若它落在内切圆内记 1,落在圆外记 0;恰好落在圆周上的概率为 0,但仍加上重投一次的规则,保证判定完备。
—
估算的 π 值
π = 3.14159265358979
总米粒数
0
圆内米粒
0
绝对误差
—
相对误差
—
正在撒米…
π 估计值收敛曲线(近似 95% 理论误差带从 N≥30 开始显示)
⚙

参数说明

  • 判定0/1 判定,圆周上重投
  • 圆内概率π/4 ≈ 0.785
  • 估算式π ≈ 4 × K / N
  • 标准误差约 1.642/√N
▸

操作指南

  1. 点击批量按钮撒米,或投 1 粒试试。
  2. 观察估计值如何波动,以及其长期趋近 3.14159 的趋势。
  3. 大批量投米会分波揭示,并使用页面内置撒米音效。
π 的估计量等于 4K 除以 N

一、从面积比得到一次命中概率

在边长为 2r 的正方形内画半径为 r 的内切圆。均匀投点时,落入某个区域的概率等于该区域占总区域的面积比,所以

圆内概率等于圆面积除以正方形面积,等于 π/4

半径 r 在分子和分母中约去,因此结果与画布的实际尺寸无关。

二、把投米写成 0/1 随机变量

第 i 粒米的坐标由 u₁,u₂∈[0,1) 经 x=2u₁−1、y=2u₂−1 映射到 [−1,1]²。定义

圆内记为 1,圆外记为 0

于是 Xᵢ 是参数 p=π/4 的伯努利随机变量:

伯努利变量取 1 和取 0 的概率

设 K 是 N 粒米中落入圆内的粒数,则

K 是指示变量之和,服从二项分布

在理想连续模型中,P(x²+y²=1)=0;因此圆周上重投只是把程序的分类规则写完整,不改变理论概率。

三、为什么估计量是 4K/N

由 E(Xᵢ)=p 及期望的线性性,

K 的期望等于 Nπ/4

将 K/N 看作 p=π/4 的估计,再乘 4,得到

π 估计量的期望等于 π

所以该估计量是 π 的无偏估计:长期重复实验时,估计值的平均等于真值。无偏不代表单次实验没有误差。

四、方差与标准误差的逐步计算

伯努利变量满足 Var(Xᵢ)=p(1−p)。在各次投米独立的模型下,方差可相加:

K 的方差等于 Np(1-p)

再使用 Var(aY)=a²Var(Y):

π 估计量方差的推导

代入 p=π/4:

π 估计量的方差常数
π 估计量的标准误差

这就是 1/√N 速率的来源。样本量增加 100 倍,标准误差才缩小 10 倍。

五、给定精度时需要投多少粒

若把「精度 ε」定义为标准误差不超过 ε,则

由精度要求推导样本量

取 ε=0.001,得 N≥2,696,767,即约 270 万粒。

若要求近似 95% 的正态误差范围为 ±ε,使用标准正态分布的 97.5% 分位数 1.959964,则需要“1.959964 × 标准误差 ≤ ε”:

95% 误差范围所需样本量

取 ε=0.001,得 N≥10,359,517,向上取整约为 1040 万粒。实验中未知 p 时,可用样本比例 K/N 估计标准误差:

用样本比例估计标准误差

六、收敛曲线应该怎样理解

由大数定律,K/N 收敛到 p=π/4,因而估计量 4K/N 收敛到 π。但这是概率意义下的长期收敛,不是单调靠近:新增样本后,曲线可能暂时远离 π。对任意有限 N,4K/N 是有理数,而 π 是无理数,所以两者不会精确相等。

页面使用 Math.random() 生成伪随机数,在模型中将它们视为近似独立、近似均匀的样本;它们不是物理随机源,也不用于密码学目的。