随机变量的产生
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
0.188
3
8
0.500
13
2
0.125
4
11
0.688
14
13
0.813
5
10
0.625
15
4
0.250
6
5
0.313
16
7
0.438
7
12
0.750
17
6
0.375
8
15
0.938
18
1
0.063
9
14
0.875
19
8
0.500
(1) Zi 值确位于 [0, m-1]区间上 , 因而 U i 位于 [0, 1]区间内 ;
1 间的整数
Zi (2) ;
然后将
Z
( i
1)
与
Zi
(2)
的相应
二进制位“异或”相加得到组合发生器的随机变量
Zi , 且令 U i Zi / m。
优点:大大减少自相关 , 提高了独立性 ; 还可以加长发生器的周期 , 提高随机数的密度 , 从而提高了
均匀性。而且它一般对构成组合发生器的线性同余发生器的统计特性要求较低
元素下标 , 将 U I 或 Z I 做为组合发生器产生的随机数 , 然后从第一个发生器再产生一个随机数来
取代 U I 或 Z I , 依次下去。
设
Z
( i
1)
与
Z
(2) i
分别是由第一个与第二个线性同余发生器产生的随机数
,
则令
Z
(2) i
的二进制表示
的数循环移位
Z
( i
1)
次,
得到一个新的位于
0 到m
, 得到的随机数的统
计特性却比较好。
缺点 : 速度慢 , 要得到一个随机数 , 需要产生两个基础的随机数 , 并执行一些辅助操作。
12.2 随机数发生器的测试
随机数发生器是伪随机数发生器 ,在使用之前必须进行检验
0 Zi m 1
为了得到 [0, 1]区间上所需要的随机数 U i , 可令 :
U i Zi / m
Zi 实质上完全不是随机的 , 因为 :
设
K i mod( aZi 1 C ,m )
则
Z1 aZ0 C mK1
Z2 a2Z0 aC maK1 C mK2 a2Z0 C ( 1 a ) m( K 2 aK1 )
定理 : 当且仅当下列条件满足时 , 线性同余发生器具有满周期 :
(1) m 与 C 能同时被整除的唯一正整数是 1;
(2) 如果 q 是整除 m 的素数 ( q 只能被自身及 1 整除 ), 则 q 能整除 a 1 ;
(3) 如果 m 能被 4 整除 , 则 a 1 也能被 4 整除。
混合乘同余发生器: 一般选择 m 2b , C 为奇数 , 而 a 可被 4 整除 , 将得到满周期。
期为 m 1 , 且在每个周期内 , 1,2,…, m - 1 这些整数严格地只出现一次。
PMMLCG 的优点:它 避免 “缺口” 问题 , m 能容易确定 , 不需要选择 C , 若 m 足够大 , 其
周期也很长。两个经过检验的 , 性能较好的 PMMLCG:
Zi 55 Zi 1 (mod 235 -31)
1 / m,2 / m, , m 1 / m , 而不可能位于这些数值之外。
例: 观察 m 16, a 5, C 3, Z 0 7 的线性同余发生器。 Zi 5( Zi 1 3) (mod 16) Z0 7
特点 :
i
Zi
Ui
i
Zi
Ui
0
7
10
9
0.563
1
6
0.375
11
0
0.000
2
1
0.063
12
乘同余发生器: C 0 , 无论怎样选择 m , 则定理的条件 (1)满足不了 , 因而不可能得到满周期。是
否存在一个大缺口亦难以确定。
素数取模乘同余法 (PMMLCG) : m 是小于 2b 的最大素数 , 而 a 的选择满足 al 1 被 m 整除的最
小整数 l m 1 , 也就说能被 m 整除的 (a l 1) 的最小整数为 am 1 1, 那么得到的 Zi 的周
保证了均匀性 ;
m (4) 为提高 U i 的均匀性 , 要求加大 。
如果 m 足够大 , 且发生器具有满足周期 , 那么可以预计 , 所得到的 U i 在 [0, 1]区间上是均匀分布
的 , 且取值是相当密的。这样就可足够近似于真正的 [0, 1]区间上的均匀分布 U(0, 1)。
如何选择 m, a, C , 就能保证线性同余发生器具有满周期呢 ?
(2) 适当选择 m, a, C , 可使 Zi 循环产生 , 无论 Z 0 取何值 , 其循环顺序是相同的。 循环一次称为发生器的一个 周期 , 记为 P 。如果 P m , 则称该发生器具有 满周期 。
(3) 适当地选择 m, a, C , 可保证 Zi 在[0, m-1]区间上一个周期内每个整数正好出现一次 , 从而
独立性等 ), 则将这种伪随机数用于仿真仍然是 可行 的。
1. 线性同余发生器
Lehmer 在 1951 年提出
Zi ( aZ i 1 C ) (mod m)
m 其中 Zi 是第 i 个随机数 , a 为乘子 , C 为增量 ,
为模数 , Z0 称为随机数源或种子 , 均为非负整
数。
Z i 满足 :
…
Zn a n Z0 C(1 a
a n 1 ) m( K n K n 1a
K1a n 1 )
a n Z0
an 1
C a
1 (mod
m) 即一旦 m, a, C, Z0 确定 , 则 Zi 就完全确定下来
了。
由 于 Zi 是 [ 0, m 1] 区 间 上 的 整 数 , 那 么 由 Z i 得 到 的 U i 仅 仅 是 有 限 个 数 , 即 为 0,
第十二章 随机变量的产生
如何根据确定的分布类型及其参数产生随机变量
12.1 随机数wk.baidu.com生器 基础: 产生 [0, 1]区间上均匀分布的随机变量 , 亦称为随机数发生器。
随机数发生器不是在概率论意义下的真正的随机数 , 而只能称为 伪随机数 ,因为无论哪一种随 机数发生器都采用递推算法。
如果算法选择得合适 , 由这种算法得到的数据 统计检验 后能具有较好的统计特性 (如均匀性 ,
Zi 85 Zi 1 (mod 231 -1)
2. 组合发生器
将两个独立的线性同余发生器组合起来 , 即用一个发生器控制另一个发生器产生的随机数 , 因
而称为组合发生器。
控制方法:
首先从第一个发生器产生 K 个 Zi (U i ) , 得到数组 U (U 1 ,U 2 , ,U K ) 或 Z ( Z1 , Z2 , , Z K ) ; 然 后用第二个随机数发生器产生在 [1, K ] 区间上均匀分布的随机整数 I ; 以 I 作为数组 U (或 Z )的