7 / 40
随机数的检验
对 U(0, 1) 随机数发生器产生的序列 {Ri : i = 1, 2, . . . , n}, 可以进行各种 检验确认其均匀性:
把 [0,1] 等分成 K 段,用 Pearson’s χ2 test 检验 {Ri : i = 1, 2, . . . , n} 落在每一段的概率是否近似为 1/K
6 / 40
组合发生器
把若干个发生器组合利用,产生的随机数比单个发生器具有更长的周期 和更好的随机性
MacLaren and Marsaglia (1965) 提出组合同余法,组合两个同余发 生器,其中一个用来 “搅乱” 次序 Wichman and Hill (1982) 设计了如下的线性组合发生器。利用三个 同余发生器:
如果 CDF F(x) 不连续 (离散分布) 或不可逆,可以定义如下的广义
逆:
F−1(u) = inf{x | F(x) ≥ u}, 0 < u < 1
(1)
10 / 40
CDF 逆变换
F−1(0.15) = 0.2, F−1(0.6) = 1.2, F−1(0.9) = 1.7
11 / 40
CDF 逆变换
用 Kolmogorov-Smirnov (K-S) test 检验 {Ri : i = 1, 2, . . . , n} 是否近 似服从 U[0, 1] 分布
把 {Ri : i = 1, 2, . . . , n} 每 d 个组合在一起成为 Rd 向量,把超立方 体 [0, 1]d 每一维均匀分为 K 份,得到 Kd 个子集,用 Pearson’s χ2 test 检验这些 Rd 向量落在每个子集的概率是否近似为 1/Kd
15 / 40