3. 随机数质量评估指标体系
在仿真、蒙特卡洛积分、密码学与统计抽样中,“随机数”并不是一个模糊的形容词,而是一组可以被度量、被检验、被比较的工程属性。一个随机数发生器(RNG)或伪随机数发生器(PRNG)能否用于某项任务,取决于它在若干关键指标上的表现。本节围绕均匀性、独立性、周期性、可重复性四个核心指标,说明它们的定义、数学表达、评估意义,以及在实际工作中如何观察和判断。
一、均匀性:取值分布是否“铺得平”
均匀性描述随机数落在取值区间内各子区间的概率是否一致。对理想 U(0,1) 随机数序列 {x₁, x₂, …, x_N},任意子区间 [a,b) ⊂ [0,1) 应满足 P(a ≤ x < b) = b − a。工程上最常用的检验是把 [0,1) 等分为 k 个区间(bin),统计落入第 i 个区间的样本数 nᵢ,构造卡方统计量:
χ² = Σᵢ (nᵢ − N/k)² / (N/k),自由度 df = k − 1
期望频数 E = N/k,要求 E ≥ 5(经验准则)
若 χ² 超过给定显著性水平 α(如 0.05)下的临界值,则拒绝“均匀”假设。例如取 N = 10000、k = 10,则 E = 1000,df = 9,α = 0.05 时临界值约为 16.92;若算得 χ² = 8.4,则不能拒绝均匀性假设。除卡方检验外,Kolmogorov–Smirnov 检验(比较经验分布函数与理论分布函数的最大偏差)也常用于连续型均匀性评估。
均匀性的评估意义在于:它直接决定蒙特卡洛估计的无偏性。若某些区间被系统性多抽或少抽,积分估计会出现偏差,且这种偏差不会随样本量增大而自动消失。实际观察时,可先画直方图做直观判断,再用卡方检验给出统计结论;两者结合,避免“看起来差不多”的主观误判。
二、独立性:前后样本是否“互不记忆”
独立性要求序列中任意位置的取值不携带其他位置的信息,即联合分布等于边缘分布之积:P(xᵢ ≤ a, xⱼ ≤ b) = P(xᵢ ≤ a)·P(xⱼ ≤ b)(i ≠ j)。对 PRNG 而言,独立性是最容易被破坏、也最容易被忽视的指标——线性同余发生器在高维空间中会落入少数超平面,表现为相邻样本存在可检测的相关结构。
常用评估手段包括:
- 自相关检验:计算滞后 h 的样本相关系数 r(h) = Σ(xᵢ − x̄)(xᵢ₊ₕ − x̄) / Σ(xᵢ − x̄)²,在独立假设下 r(h) 近似服从 N(0, 1/N),可用 |r(h)| > 1.96/√N 作为 5% 显著性下的警戒线。
- 游程检验:统计序列中“上升/下降”或“高于/低于中位数”的游程数,检验其是否偏离独立情形下的期望值。
- 扑克检验与间隔检验:把连续若干个数分组,检查各组模式出现频率是否符合独立假设。
独立性的评估意义在于:许多仿真模型(如排队系统、粒子输运)依赖“当前抽样不受历史影响”这一前提。若相邻随机数正相关,方差估计会被低估,置信区间偏窄,导致对系统性能的判断过于乐观。实践中建议至少检查滞后 1~20 的自相关系数,并对关键应用补充游程检验。
三、周期性:序列何时开始“重演”
任何有限状态的 PRNG 都必然周期。设发生器内部状态空间大小为 M,则其输出序列的周期 T 满足 T ≤ M。周期性的数学表达即存在最小正整数 T,使得对充分大的 n 有 xₙ₊ₜ = xₙ。对线性同余发生器 xₙ₊₁ = (a·xₙ + c) mod m,当且仅当 c 与 m 互素、a − 1 能被 m 的所有素因子整除、且 m 为 4 的倍数时 a − 1 能被 4 整除,才能达到满周期 m。
评估周期性的现实做法不是“跑完一个周期”,而是:确认发生器的理论周期参数(如 m = 2³¹ − 1 的 Mersenne Twister 周期为 2¹⁹⁹³⁷ − 1),并检查实际使用中单次仿真的抽样总量是否远小于周期(工程经验通常要求 N ≪ T,例如 N 不超过 T 的平方根量级更稳妥)。若仿真需要数十亿样本而所用发生器周期仅 2³²,则序列重复会引入系统性偏差。
周期性的评估意义在于:它决定了随机数可安全使用的“样本预算”。周期不足时,重复片段会使方差估计失真、稀有事件被重复计数,且这种问题往往在长跑仿真后期才暴露,排查成本高。
四、可重复性:同种子是否同结果
可重复性指给定相同种子(seed)与相同算法,发生器输出完全一致的序列。其数学表达可写为:若 seed₁ = seed₂ 且算法参数相同,则对任意 n,xₙ(seed₁) = xₙ(seed₂)。这是伪随机数相对真随机数的核心工程优势——它使仿真实验可复现、可审计、可对比。
实现可重复性的关键操作包括:显式记录种子与算法标识;避免在并行环境中让多个线程共享同一发生器状态(应使用独立子流或按线程分流);固定随机数消耗顺序,避免因条件分支导致抽样次数变化而错位。例如在 Python 中可用 numpy.random.default_rng(20240501) 建立独立生成器,并在实验记录中保存该种子值。
可重复性的评估意义在于:它是排障与验证的基础。当仿真结果异常时,只有能复现同一序列,才能定位是模型逻辑问题还是随机波动;在科研与工程评审中,可重复性也是结果可信度的前提。
五、四项指标的关系与综合判断
四项指标并非彼此独立:均匀性与独立性共同构成“统计随机性”,周期性是有限状态的固有限制,可重复性则是工程可控性要求。实际选型时,应先明确应用对样本量、维度、可复现性的要求,再对照指标逐项核查,而不是只看单一检验是否通过。
把四项指标落到一次具体评估中,可以形成如下判断顺序:先确认发生器理论周期是否满足样本预算;再用卡方检验与自相关检验核查均匀性与独立性;最后验证同种子重跑是否逐位一致。三项统计检验通过、周期与可重复性满足要求,才可认为该随机数源适合当前仿真任务。需要强调的是,任何单一检验通过都不足以证明“质量好”,指标之间应相互印证,并结合具体应用场景设定阈值。