1. 课程导入与随机数质量评估概览

在仿真复现中,随机数并不是“随便产生的数”,而是整个实验可重复性的地基。设想你要复现一次排队系统仿真:如果两次运行使用相同的模型参数、相同的初始状态,却得到差异很大的平均等待时间,问题往往不在模型,而在随机数流。随机数发生器(RNG)负责产生均匀分布的基础序列,随机变量生成器再把它变换为指数分布、正态分布等业务所需的分布。只要基础序列可复现、变换过程确定,整条随机数链路就是确定的;反之,任何一处不可控,复现就无从谈起。

因此,本课程把“随机数质量”理解为一条从种子到结果的完整链路,而不是孤立地看某个函数。评估维度可以归纳为四个层面:可复现性(相同种子是否产生相同序列)、统计均匀性(序列是否近似服从 U(0,1) 且无明显相关性)、分布正确性(变换后的样本是否符合目标分布)、工程可用性(周期长度、生成速度、并行流划分是否满足仿真规模)。这四个维度共同决定了随机数能否支撑可信的仿真结论。

随机数链路与质量评估四维度 从种子到仿真结果,每一环都影响可复现性与可信度 种子 Seed 固定整数/字符串 均匀随机数发生器 U(0,1) 基础序列 分布变换 指数/正态/离散 仿真模型 事件调度与状态更新 结果 可复现 质量评估四维度 1 可复现性 同种子 → 同序列 → 同结果 检查:两次运行逐位比对 2 统计均匀性 均值≈0.5,方差≈1/12 卡方、KS、自相关检验 3 分布正确性 变换后样本拟合目标分布 直方图 + 拟合优度检验 4 工程可用性 周期长度、速度、并行流 避免流重叠与相关性 课程学习路径 基础认知 RNG 原理与种子 质量检验 均匀性与相关性 分布生成 逆变换与拒绝法 复现工程 种子管理与并行流 实战项目 排队系统仿真复现

上图把“种子—均匀序列—分布变换—仿真模型—结果”这条链路与四个评估维度放在同一视图中。可以看到,可复现性贯穿全链路,而统计均匀性主要针对基础序列,分布正确性针对变换环节,工程可用性则约束发生器本身的选择。理解这张图,就理解了本课程的组织逻辑。

为什么“能跑通”不等于“可复现”

很多初学者用 Python 的 random.random() 或 NumPy 的 np.random.rand() 做仿真,第一次运行结果不错,第二次却变了。常见原因有三类:一是没有显式设置种子;二是混用了全局随机状态与独立生成器;三是并行计算时多个进程共享或错误复制了同一随机流。下面是一段可对照检查的最小示例:

import numpy as np

# 错误做法:依赖全局状态,未固定种子
a = np.random.rand(3)

# 正确做法:使用独立生成器并显式给定种子
rng1 = np.random.default_rng(20240501)
rng2 = np.random.default_rng(20240501)
x = rng1.random(3)
y = rng2.random(3)
print(np.array_equal(x, y))   # True,说明同种子可复现

这段代码的意义不在于记住 API,而在于建立习惯:每个仿真任务应拥有独立的生成器对象,种子作为实验配置的一部分被记录。当种子、生成器算法、调用顺序三者都固定时,随机数序列才真正可复现。调用顺序尤其容易被忽视——在仿真循环中提前多抽一个随机数,后续所有样本都会整体错位。

质量评估的基本判断依据

评估均匀序列时,最直接的是看一阶统计量:样本均值应接近 0.5,样本方差应接近 1/12≈0.0833。但仅看均值和方差远远不够,因为存在明显周期性的序列也可能通过这两项。更完整的做法包括:把 [0,1) 等分为 k 个区间做卡方拟合优度检验;用 Kolmogorov–Smirnov 检验比较经验分布与均匀分布;计算滞后 1 至若干阶的自相关系数,观察是否显著偏离 0。对于分布变换后的样本,则应针对目标分布重复拟合优度检验,例如指数分布可用 KS 检验,离散分布可用卡方检验。

教学示例中常取样本量 n=10000、显著性水平 α=0.05。若检验 p 值大于 0.05,通常不拒绝“样本来自目标分布”的原假设;但要注意,p 值小并不必然说明发生器坏,也可能是样本量过大导致微小偏差被放大,需结合效应大小综合判断。

实战项目与学习目标

本课程的实战项目是一个单服务台排队系统(M/M/1)的仿真复现。项目要求你完成四件事:用固定种子生成到达间隔与服务时间样本;统计平均等待时间与队列长度;更换种子重复多次,给出结果的置信区间;最后验证在相同种子与相同调用顺序下,两次运行的输出逐位一致。这个项目规模不大,却完整覆盖了种子管理、分布变换、统计检验与复现验证四个关键环节。

学习路径上,课程先讲随机数发生器的原理与种子语义,再进入均匀性检验与相关性分析,随后讲解逆变换法、拒绝采样等分布生成技术,最后落到并行随机流划分与复现工程实践。建议你在学习过程中始终保留一份“实验记录”:记录种子、生成器类型、样本量、检验方法与结论。这份记录本身就是可复现性的一部分,也是后续排障时最有价值的依据。

不要把“结果看起来合理”当作随机数质量合格的证据。仿真输出的合理性可能来自模型结构,也可能来自偶然的样本;只有经过统计检验并确认可复现,随机数链路才算真正可信。

概览到此,你已经建立了三个基本认识:随机数是仿真复现的地基;质量评估要覆盖可复现性、均匀性、分布正确性与工程可用性四个维度;学习过程应围绕“固定种子—检验序列—变换分布—验证复现”这条主线展开。接下来的章节将逐段拆解这条主线中的每一个技术环节。