设想你拿到一张地图,上面有一片形状怪异的湖——湖岸弯弯绕绕、犬牙交错,拿尺子量不出来,叠方格纸又嫌麻烦。有个聪明的办法:闭着眼,抓一把豆子往地图上一撒,然后数落在湖里的豆子占总豆子的比例,再用这个比例乘以地图的总面积——答案就出来了。豆子撒得越多,答案越接近真实面积。这就是蒙特卡洛积分的核心:把积分看成一片“曲边面积”,用随机撒点的方式去估算它,而不是费力去解公式。这篇文章会把“撒豆子”背后的数学讲透:为什么随机采样能算积分?估算值会抖得多厉害?高维时为什么它比网格划分更划算?如何通过“有策略地撒豆子”(重要性采样)让结果更稳?最后再看看它在图形学渲染、强化学习和金融定价里的真实身影。全程每个概念都有比喻和推导,绝不让你对着公式发呆。
学懂蒙特卡洛积分,你就掌握了一把处理“算不出解析解”的积分和高维期望的万能钥匙——这是图形学渲染、强化学习和概率建模从业者的基本生存技能。
可视化演示
动态演示蒙特卡洛积分的核心机制,通过源头/管道/节点/终端四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
蒙特卡洛积分:蒙特卡洛 蒙特卡洛积分的基本原理 随机采样与积分估计的方差分析 核心机制可视化 蒙特卡洛积分整体架构与关键组件
积分的意义
想象你拿到一张湖泊地图,湖岸弯弯曲曲、深浅不一,用尺子根本量不出面积。数学里,这种“不规则曲边图形的大小”,就是积分。只要把湖岸形状看成函数曲线 y=f(x),把地图的横轴看成 x 轴,湖的面积就对应“曲线与 x 轴围成的面积”,也就是定积分。你要做的不是去量,而是学会“算”这个面积。
给定函数 y=f(x) 和区间 [a,b],定积分表示曲线下方、x 轴上方的面积。它对应着现实中各种“总量”:物体走过的路程、概率的总和、一段时间内的总收益。可惜,绝大部分真实世界的函数——比如渲染方程、收益曲线——都没有教科书里那种简洁的原函数,积分只能靠近似方法求解。
最常见的近似是数值积分,思路是把曲边梯形切成一条条细窄的竖条,用矩形或梯形面积相加,这就是黎曼和。切得越细,结果越接近真值,但计算量也直线上升。更高维时,竖条变成“小立方体”,数量爆炸式增长,数值积分很快会撑不住——这为后文埋下了伏笔。
用尺子量湖岸、用方格纸叠湖面,都是“精确但笨重”的办法。但换个角度想:既然面积是无数细条的总和,我们能不能靠“大量随机观测”直接逼近这个总和?下一节,豆子正式登场。
- 积分号 ∫意为“求和”,把曲线下无数条细窄竖条的面积累加起来。
- 上下限 a 与 b只计算区间 [a,b] 内那一段的面积,区间之外的图形一概不管。
- 被积函数 f(x)曲线本身的高度,细条的高度处处不同,面积也随之变化。
- 微元 dx一条无限窄的小条宽度,表示我们把图形切得足够细、细到可以相加。
随机采样原理
回到撒豆子。你闭着眼把豆子均匀抛向整张地图,豆子并不“认识”湖岸线,可成千上万颗豆子会自然地铺满地图。这时数一下落在湖里的豆子比例,乘以地图总面积,就是湖的面积。随机看似毫无章法,但大量随机的叠加恰恰隐藏着精确的规律。
概率论把这套规律讲得很清楚。假设 X 是一个随机变量,它落在不同位置有对应的概率密度 p(x),那么函数 f 关于 X 的期望定义为“每个取值乘以它出现的概率,再全部相加”。在湖的例子中,在地图上均匀撒豆,等于 p(x) 处处相同;“豆子是否落在湖内”是一个只取 0 或 1 的指示函数。湖面积,本质上就是这个指示函数的期望。
我们无法解析算出这个期望,但大数定律——“大量随机试验的平均结果会稳定在期望附近”——给了底气:当样本数 N 足够大,样本均值会以概率 1 收敛到这个期望。也就是说,豆子撒得足够多,落在湖内的比例必然趋近真实比例。随机性在这里不是噪声,而是可以被“平均”掉的估计工具。
“采样代替积分”是蒙特卡洛方法最重要的哲学:凡是写得出期望、但求不出解析解的积分,都可以用样本均值去逼近。湖的面积如此,任何复杂的曲线下面积也是如此。
- 期望 E随机变量 X 的所有可能取值的“加权平均”,权重就是概率。
- 概率密度 p(x)描述豆子落在每个位置可能性大小的函数,均匀撒豆时处处相等。
- 加权和变成积分把“函数值 × 概率”对每个位置求和,位置连续时就写成积分。
- 样本均值与大数定律N 个随机样本的平均值,随 N 增大收敛到期望。
估计器公式
有了原理,还差一个“换算公式”。湖面积 = 湖内豆子比例 × 地图总面积。地图总面积就是积分区间的宽度 b−a;湖内豆子比例则对应“平均高度”——每个采样点处 f(x) 取值的平均。把两件事一乘,就得到蒙特卡洛估计量。
具体操作:在 [a,b] 上均匀随机抽取 N 个点 x₁,…,x_N,每个点的概率密度为 p(x)=1/(b−a)。把每个点的函数值加起来求平均,再乘以区间宽度 b−a,就完成了对积分的估算。这就是均匀采样蒙特卡洛积分,代码里最常写的那个公式。
这个估计量最漂亮的性质是无偏性:对估计量取期望,采样点的随机性被平均掉后,恰好得到真实积分 I。翻译成大白话——反复做很多轮“撒豆子试验”,把每轮的估算值再平均,结果会精确地落在真值上。单次结果会抖,但整体上“不偏不倚”。
豆子没有偏向地图上任何一个角落,账本上的“平均高度 × 宽度”也不会系统性夸大或缩小湖的面积。剩下的问题是:每一轮估算会“抖”得多厉害?这取决于湖的轮廓有多起伏——正是下一节要分析的方差。
- 均匀采样 xᵢ在区间 [a,b] 上等概率随机抽取 N 个点,每个点之间相互独立。
- 函数值求和把每个采样点处的高度 f(x_i) 全部加起来。
- 取平均除以 N 得到样本均值,相当于整片地图上豆子的“平均高度”。
- 乘区间宽度把平均高度还原成总面积,对应“比例 × 地图面积”的换算。
- 无偏性估计量的期望等于真实积分,平均意义上不会系统性高估或低估。
方差与误差
你手一抖,这次豆子密在湖东、下次密在湖西,估算出来的面积就会上下跳动。跳动的大小不是“运气”,而是可以用方差精确衡量的:方差越大,单次估算离真值越远;方差越小,估算越稳。
对于均匀采样,方差有一个简洁结论:估计量的方差等于单体方差除以样本量,再乘以区间宽度的平方。推导关键只有两步:独立同分布样本的方差可以相加,求和后再取平均会除以 N。标准差则按 1/√N 收缩——这就是蒙特卡洛积分的“收敛速度”。
这个速度透露了残酷事实:想让误差缩小一位小数(比如从 0.01 降到 0.001),N 要扩大 100 倍;再缩一位,再乘 100。所以蒙特卡洛积分“慢”是出了名的。可它为什么还能在高维领域称王?因为它慢得“与维度无关”,这正是下一节的王牌。
同样的豆子,二维湖和一百维湖的收敛速度一模一样。“慢”是蒙卡的价格,“不受维度拖累”是蒙卡的王牌。接下来就看这张王牌怎么在高维战场上发力。
- 单个样本的方差f(X) 围绕真实积分的波动大小,湖岸越崎岖、函数起伏越大,方差越大。
- 独立样本方差相加N 个独立同分布样本的方差线性叠加,协方差为零。
- 取平均缩小方差除以 N 后整体方差缩小 N 倍,标准差相应缩小 √N 倍。
- 区间宽度换算乘上 (b−a) 后,整体方差再乘 (b−a)²。
- 误差代价标准差 ∝ N^{−1/2},精度提高一位小数需要 100 倍样本。
高维优势
用方格纸叠二维湖面时,毫米格子的数量已经让人头疼。设想一个三维“湖”——比如一栋建筑内部的空间体积——你需要毫米立方体去填满;到 10 维、100 维的“超体积”,网格点的数量是指数级爆炸,没有人能枚举完。这就是维度灾难。
数值积分(网格法)的核心痛点是:每个维度切 M 份,d 维空间就需要 M^d 个点。当 d 从 2 涨到 20,即使每维只切 10 份,也要 10²⁰ 个点,工程上完全不可行。而蒙特卡洛积分的误差只由总样本数 N 决定,跟维度 d 没有任何关系——公式里根本没有 d 的位置。
道理很简单:豆子永远是“一把豆子”,不会因为空间变高维就需要改画格子。计算机视觉、贝叶斯推断、金融建模里动辄几十上百维的积分,数值积分早已投降,蒙特卡洛却是主场作战,稳健地以 1/√N 的速度收敛。
毫米方格纸在高维世界彻底崩溃,而撒豆子的手在任何一个维度的宇宙里都同样稳定。不过,如果还能让豆子撒得更聪明,精度就还能再翻一番——这就是重要性采样的舞台。
- 网格点总数每个维度切 M 份,d 维空间需要 M^d 个点,维度一涨立刻失控。
- 维度灾难维度增加时网格点数指数爆炸,存储与计算量迅速超出承受范围。
- MC 的收敛阶蒙特卡洛误差为 O(N^{−1/2}),公式中不含 d。
- 适用分界线低维时数值积分精度更高,高维时蒙特卡洛成为唯一现实选择。
重要性采样
假设你提前看过地图,知道湖的南半部分水域辽阔、北半部分几乎无水。机会主义地想:把豆子全撒在南部,湖内豆子比例大增,面积不就“算大”了?问题在于——你“作弊”了,撒豆不再是均匀的随机,比例本身被带偏。
重要性采样是聪明的折中:豆子可以按任何你方便撒的分布 q(x) 去撒(想多撒的地方就多撒),但每一颗豆子要附上一张“折算凭据”——权重 w(x)=p(x)/q(x),其中 p(x) 是真实的均匀分布密度。把每颗豆子的贡献乘以权重再平均,期望仍然等于真实积分。这样既保留随机性,又把样本引到了“更值得算”的地方。
方差能不能降,取决于 q(x) 的形状。理论上 q*(x)∝|f(x)|p(x) 时方差最小,翻译过来就是:函数值大的区域多撒豆。但如果选错了 q——在 f 很大的位置 q 反而很小——权重 p/q 会疯狂放大,方差甚至比均匀采样还差,这是需要警惕的翻车现场。
同样的豆子数量,聪明的撒法配上严格的账本折算,能让估算精度成倍提升。豆子的目标不是“均匀”,而是“该多的地方多、该少的地方少,但账目绝不乱”。这套思路在真实世界里遍地开花。
- 提议分布 q(x)我们自己挑选的采样分布,可以在目标贡献大的区域多撒豆子。
- 权重折算 w=p/q因为 q 撒得不均匀,需要用真实密度 p 除以 q 修正每颗豆子的“身份”。
- 加权求和平均每个采样值乘上权重再平均,期望仍等于真实积分——账不会做错。
- 最优提议分布q 的形状越贴近 |f|p,折算后的波动越小,方差越低。
- 翻车警告q 在 f 大的地方取值过小时,权重趋于无穷,个别样本主导估计。
实际应用
地图上的湖,在现实世界里换了一副面孔:它可能是屏幕上某个像素的亮度、智能体一局游戏的得分、一张期权合约在到期日的收益。它们的共同点是——真实值无法解析求出,只能通过大量随机试验来估计。
图形学里,路径追踪渲染把“一个像素的颜色”写成一条光照积分:对每个像素发出大量随机光线,光在场景里随机反弹,把每次弹射的亮度平均起来,就得到逼真的软阴影和全局光照。强化学习里,期望回报同样无法解析求解,于是让智能体按当前策略跑很多局,把每局累积奖励平均,就得到回报估计——这正是策略梯度算法的基础。
金融领域,期权价格是“到期收益的期望折现”,标的资产价格路径随机;蒙特卡洛做法是模拟成千上万条价格路径,平均后折现。三者共用同一个公式:用样本平均近似期望。下面以强化学习为例拆解这个通用模板。
无论是湖、像素、奖赏还是钞票,凡是“复杂函数的平均值”,都是一片等待你撒豆子的湖。蒙特卡洛积分的精髓,就是从随机中提炼确定——豆子再多看起来都乱,但平均之后,真相自现。
- 轨迹 τ强化学习中一次完整的“尝试”,即从初始状态开始的状态-动作序列。
- 回报 G(τ)这条轨迹上每一步奖励的累计总和。
- 策略分布 π智能体按策略选择动作,不同的策略会形成不同的轨迹分布。
- 样本平均采样 N 条轨迹取平均回报,近似期望回报——这就是策略梯度估计的核心。
AI 应用场景
图形渲染:路径追踪与全局光照
阶段:图像生成与渲染、数据合成
解决的问题:传统光栅化只能处理直接光照,无法自然模拟软阴影、焦散和多次弹射的间接光;这些效果都需要求解复杂的渲染方程,而渲染方程没有解析解。蒙特卡洛积分让每个像素发出大量随机光线,把“光照积分的采样平均”变成逼真的像素亮度。
具体案例:Blender Cycles、Mitsuba 等离线渲染器中,每个像素会发射几十到几千条随机光线,光线在场景中随机反弹后对辐射亮度求平均。样本越多,画面噪点越少,最终收敛到真实光照,这是影视特效和建筑可视化行业的标配流程。
强化学习:策略回报的期望估计
阶段:策略评估与策略优化
解决的问题:强化学习中策略的优劣由期望回报定义,但这个期望无法解析计算——环境交互的转移概率往往未知。蒙特卡洛方法通过让智能体“多跑几局”来采样轨迹,用平均回报估计期望,从而判断策略好坏并计算梯度方向。
具体案例:训练机器人控制策略时,每个训练轮次让当前策略在环境中 rollout 若干条轨迹,计算平均累计奖励;策略梯度算法(如 REINFORCE)用这批采样轨迹的回报均值来估计梯度,逐步改进策略。
金融量化:蒙特卡洛期权定价
阶段:风险评估与金融建模
解决的问题:期权价格是“到期日收益的期望折现”,但标的资产价格路径随机且收益函数复杂(美式期权可提前行权),无法写出闭式解。蒙特卡洛方法模拟成千上万条随机价格路径,对每条路径的到期收益折现后取平均,得到期权价格的近似值。
具体案例:量化团队为亚式期权定价时,假设标的资产服从几何布朗运动,每天生成 10 万条价格路径,模拟到到期日计算平均收益并折现。结合重要性采样对“亏损区间”加密采样,还能显著降低估值方差。
Python 演示
import mathimport random def uniform_mc(f, a, b, n): """均匀采样蒙特卡洛积分: I = (b-a)/N * sum(f(x_i))""" total = 0.0 for _ in range(n): x = a + (b - a) * random.random() total += f(x) return (b - a) * total / n def importance_mc(f, n): """重要性采样: x ~ q(x)=2x 贴近 f(x)=x^2 的峰值, 权重 w=1/(2x)""" total = 0.0 for _ in range(n): u = max(random.random(), 1e-12) x = math.sqrt(u) weight = 1.0 / (2.0 * x) total += f(x) * weight return total / n def mean_sq_err(f, true_value, trials=300, n=500): """重复多轮试验, 返回两种估计器的均方误差""" err_u = 0.0 err_i = 0.0 for _ in range(trials): e1 = uniform_mc(f, 0.0, 1.0, n) - true_value e2 = importance_mc(f, n) - true_value err_u += e1 * e1 err_i += e2 * e2 return err_u / trials, err_i / trials def main(): random.seed(2024) f = lambda x: x * x true_value = 1.0 / 3.0 est = uniform_mc(f, 0.0, 1.0, 10000) print("真实积分值: {:.6f}".format(true_value)) print("均匀采样 MC 估计: {:.6f} 误差: {:.6f}".format(est, abs(est - true_value))) mse_u, mse_i = mean_sq_err(f, true_value) print("均匀采样均方误差: {:.8f}".format(mse_u)) print("重要性采样均方误差: {:.8f}".format(mse_i)) print("方差降低倍数: {:.2f}x".format(mse_u / mse_i)) if __name__ == "__main__": main()
x = a + (b - a) * random.random()把 [0,1) 的均匀随机数映射到积分区间 [a,b],保证豆子均匀覆盖。return (b - a) * total / n平均高度乘以区间宽度,还原出面积,这就是估计器公式。u = max(random.random(), 1e-12)取一个不粘零的均匀随机数,避免后面除以零。x = math.sqrt(u)逆变换采样,让 x 服从 q(x)=2x,峰值集中在 1 附近(函数值大的区域)。weight = 1.0 / (2.0 * x)真实密度 p=1 除以提议密度 q=2x,给每颗豆子开“折算凭据”。e1 = uniform_mc(f, 0.0, 1.0, n) - true_value记录单轮估计与真值的偏差。return err_u / trials, err_i / trials平均偏差平方得到均方误差,近似两种方案的方差。
常见误区
误区我一直以为豆子(样本)数量翻倍,误差就跟着减半——毕竟算的是平均值嘛,平均两倍的数据,照理说应该准一倍才对,但实验结果总是不对。
正解误差(标准差)的收缩速度是 1/√N,不是 1/N。原因在于:N 个独立样本的方差相加后是 N·Var(f),取平均后整体方差变为 Var(f)/N,标准差自然变成 σ/√N。于是 N 翻倍,标准差只缩到原来的 0.707 倍;想让误差缩小 10 倍,需要 N 扩大 100 倍。这个“百倍代价”是蒙特卡洛慢的根源。
为何常见:直觉来自“均值更稳”,但忽略了独立样本的方差是线性叠加的,平均只抵消掉一部分;没有亲手推一遍 Var(均值)=Var/N 公式,就容易想当然。
误区我之前觉得蒙特卡洛积分又慢又随机,肯定只适合低维的小问题;高维积分那么复杂,还是老老实实把网格铺满更稳妥。
正解恰恰相反,蒙特卡洛的王牌就是高维。网格法每维切 M 份,d 维需要 M^d 个点,维度一涨指数爆炸;而蒙特卡洛的误差 O(1/√N) 与维度完全无关,样本量 N 才是唯一决定精度的变量。低维(1-3 维)时数值积分确实更精确,但维度一旦超过十几维,网格法直接不可行,蒙特卡洛成为唯一现实的选择。
为何常见:把“单个随机点不精确”和“整体收敛慢”混为一谈,又习惯用低维二维的直觉去想象高维空间,自然低估了蒙卡的价值。
误区既然 q(x) 是“自己选”的分布,那重要性采样就相当于免费午餐,随便挑一个分布都能降方差,何乐而不为。
正解q(x) 不是免费午餐,它有三个约束:首先支撑必须覆盖真实分布,p>0 的地方 q 也要 >0,否则漏掉的区域永远采不到;其次 q 越接近 |f(x)|p(x) 的峰值形状,权重 p/q 越平稳,方差越小;再者如果 q 在 f 大的地方取值过小,权重 p/q 会变成巨数,个别样本主导整个估计,方差反而比均匀采样更爆炸。选 q 是用知识换方差,选错了要加倍赔偿。
为何常见:公式里 q(x) 可以自由代入,让人误以为“自由”等于“随便”;没有意识到权重 p/q 的波动才是方差的真正来源。
误区老师说这个估计量是“无偏”的,那我每次算出来的结果都应该很接近真实值,偏差大肯定就是代码写错了。
正解无偏(unbiased)说的是期望意义:把估计试验重复无穷多次,所有估计值的平均值恰好等于真实积分。它并不保证任何单次结果都靠近真值——单次估计的抖动由方差决定,方差大时单次结果差得很远是完全正常的。所以模型训练、仿真里换一个随机种子结果不同,不是 bug,而是蒙特卡洛的固有属性。
为何常见:把长期平均性质误当成单次性质,是混淆“期望”与“一次实现”的典型表现;这也提醒我们评估蒙卡算法要看多次试验的均方误差,而不是单次运气。
面试题
Q1. 蒙特卡洛积分最核心的思想是什么?
- A.用网格切分曲线下面积
- B.用随机采样估计期望← 正确答案
- C.求被积函数的原函数
- D.用梯形公式做求和
答案:B。蒙特卡洛积分的本质是把积分改写成期望形式,再用随机样本的均值去逼近它,选 B。A 和 D 是数值积分(网格/梯形),C 是解析积分,都不是“随机采样”的思路。
Q2. 均匀采样蒙特卡洛积分的估计误差大约按什么速度收缩?
- A.与样本数平方成反比
- B.与样本数 N 成正比
- C.与样本数平方根成反比← 正确答案
- D.与样本数指数成反比
答案:C。估计量标准差按 1/√N 收缩,即与样本数平方根成反比,选 C。A、D 把收敛速度想得太美好,B 方向完全反了——样本越多误差越小,不可能与 N 成正比。
Q3. 想让蒙特卡洛积分误差缩小 10 倍,样本量约需增加?
- A.增加约 10 倍样本
- B.增加约 100 倍样本← 正确答案
- C.增加约 1000 倍样本
- D.增加约 10000 倍样本
答案:B。误差 ∝ 1/√N,误差缩小 10 倍意味着 1/√N 变为原来的 1/10,所以 N 变为 100 倍,选 B。这个“百倍代价”是蒙特卡洛收敛慢的典型考题,也是重要性采样存在的意义。
Q4. 重要性采样中折算权重 w(x) 的定义是?
- A.被积函数值 f(x) 本身
- B.真实分布与提议分布之比← 正确答案
- C.提议分布与真实分布之比
- D.积分区间的长度值
答案:B。权重是真实密度与提议密度之比 p(x)/q(x),选 B。A 是函数值,D 是区间宽度,C 把分子分母倒置,会导致期望算错。
Q5. 说蒙特卡洛估计量“无偏”,指的是?
- A.估计量的期望等于真实积分← 正确答案
- B.单次估算结果没有任何误差
- C.估计量的方差恒等于零
- D.样本趋于无穷时才准确
答案:A。无偏指估计量在多次重复试验下的期望等于真实值,选 A。B 和 C 把无偏误当成“单次精确/零方差”,D 混淆了“一致估计”(样本无穷时收敛)与“无偏”(有限样本下期望就对准)两个概念。
Q6. d 维单位超立方体上每维切 M 份,网格法需要的总点数是?
- A.需要 M 乘以 d 个点
- B.需要 2 的 d 次方个点
- C.需要 M 的 d 次方个点← 正确答案
- D.需要 d 的 M 次方个点
答案:C。每个维度 M 个划分点,d 个维度组合起来是 M^d 个点,选 C。A 是线性增长,B 是二分特殊情形,D 把底数和指数交换了。这就是维度灾难的数学来源:维度一涨,网格点数指数爆炸。
Q7. 区间 [a,b] 上均匀采样 N 个点的蒙特卡洛积分估计器是?
- A.(b−a) 乘以样本均值← 正确答案
- B.样本均值除以 (b−a)
- C.所有样本点函数值之和
- D.样本点中的最大函数值
答案:A。估计器为 (b−a)/N·Σf(x_i),等价于区间宽度乘以样本均值,选 A。B 把宽度除反了,C 缺了平均和宽度,D 更是与积分无关。记忆口诀:平均高度 × 宽度 = 面积。
Q8. 下列哪些手段可以降低蒙特卡洛积分的方差?
- A.增加采样样本数量 N← 正确答案
- B.采用重要性采样方法← 正确答案
- C.使用低差异拟随机序列← 正确答案
- D.在函数值为零处集中采样
答案:ABC。增加 N 使方差按 1/N 缩小,重要性采样和低差异序列(拟蒙特卡洛)都是成熟的降方差手段,选 A、B、C。D 把样本集中到函数值为零的区域,贡献全是零,既浪费样本又会带来严重偏差,不是降方差方案。
Q9. 关于重要性采样,以下说法正确的是?
- A.提议分布支撑需覆盖真实分布← 正确答案
- B.提议分布贴近峰值方差更小← 正确答案
- C.提议分布可以随意选择
- D.权重过大可能导致方差爆炸← 正确答案
答案:ABD。q 的支撑必须覆盖 p,否则漏采区域永远缺失,A 对;q 越贴近 |f|p 峰值,权重越平稳方差越小,B 对;权重 p/q 过大说明 q 在重要区域取值过小,个别样本主导估计导致方差爆炸,D 对。C 错——q 选得差反而放大方差,绝非“随便选”。
Q10. 关于蒙特卡洛积分方差 Var(Î_N)=Var(f)/N 的分析,正确的有?
- A.方差随样本数 N 增大而减小← 正确答案
- B.标准差约按 1/√N 收缩← 正确答案
- C.方差与函数波动程度正相关← 正确答案
- D.方差与积分维度平方成正比
答案:ABC。方差公式中 N 在分母,所以 A 对;开根号后标准差按 1/√N 收缩,B 对;分子是单体方差 Var(f),函数波动越大方差越大,C 对。公式里根本没有维度 d,所以 D 错——这正是蒙特卡洛适合高维的原因。