当前位置:文档之家› 第四章 随机数发生器和随机变量产生

第四章 随机数发生器和随机变量产生

只要任意给定一个初始值(也称种子值),当调用该算 法时,就可以按确定的关系计算出下一个“随机”数, 然后,以新生成的随机数作为第二个种子值,再计算出 新的随机数。多次调用该算法就可以生成一个“随机数”
序列。
4
4-1 随机数的生成及本质
这种用算法生成的随机数,只要给定初始的 种子值,则以后所生成的“随机”数都是确定的
2
4-1 随机数的生成及本质
关于随机数生成方法的研究已有很长的历史。最 早的随机数是用手工实现的,如抽签、发纸牌、从罐 子中摸取带数字的球等方法。其中,有些方法至今仍 然还采用。 随着Monte-Carlo方法的出现,20世纪初出现了 生成随机数的机械装置和电子装置,如抽奖机等。
但是机械装置和电子装置不能重复生成与原来完全
7
4-3 常用的随机数发生器
生成随机数的方法经历了一段漫长的发展过程,
下面介绍几种有代表性的算法,主要有:
(1)早期的随机数发生器:平方取中随机数发
生器、乘积取中随机数发生器、常数乘子法、斐
波那契法(Fibonacci)等; (2)线性同余随机数发生器:混合同余随机 数发生器、乘同余随机数发生器;
例如:
(1)
45 45 mod 6 45 6 6 45 7 6 45 42 3 45 45 mod 9 45 9 9 45 5 9 45 45 0
(2)
10
u n 的计算表达式为:
xn / 10
8
4-3 常用的随机数发生器
1.平方取中随机数发生器
由冯.纽曼于1940年提出的,基本原理是:将一个
N位数平方后,取中间N位数为第一个随机数,然后再 平方取中间N位数为第二个随机数,递推公式如下: 2 xn 2k 1 x mod 10 n x2 k 2k n 110 x mod 10 n k /102 k u 10 x n 2k n x n / 10 u n 初始值为 x0 (正整数), k为x0的位数的一半 初始值为 x0 (正整数), k为x0的位数的一半 (1) 5.8 5 2 2 x n 1 x n 1 (2) 5.1 5 其中, 的整数部分,例如: k 表示取 k 9 10 Nhomakorabea10
2 xn 1 上式中 k mod 10 2 k 的含义为: 10 2 xn 进行模为 102 k 的求余运算。我们看下面 1 对 k 10 的例子:
N mod M
表示对N 进行模为 M 的求余运算,其含义为:
N N mod M N M M
数值,从本质上说这并不具有真正的随机性,因
此称这种方法为伪随机数PRN(Pseudo Random Number)。
5
4-2 随机数发生器的概念
• • 用数学方法生成随机数所依赖的算法和程序就 称为随机数发生器。 仿真模拟钟所用到各类随机变量都是以随机数 发生器产生的[0, 1)间均匀分布随机数为基础而 得来的。
第4章 随机数发生器及随机变量的产生
本章主要内容:
– 1. 随机数的生成和本质 – 2. 随机数发生器的概念 – 3. 常用的随机数发生器 – 4. 随机变量的产生方法
1
第4章 随机数发生器及随机变量的产生
本章重点:
• 1.计算机产生的随机数的本质 • 2.各类方法(特别是平方取中法 和线性同余法)产生随机数的原 理及其特点 • 3.拟转换法生成随机变量 本章难点: 逆转换法生成随机变量的原理
相同的随机数,对计算结果无法进行检查,并且生 成过程比较复杂。因此,它们未能得到进一步推广。
3
4-1 随机数的生成及本质
目前,在用计算机生成随机数的方法中,一类使
用最广、发展较快的方法是数学方法,其特点是占用
内存少、速度快并且便于检查。 用数学方法生成随机数是指按照一定的算法(递推
公式),来生成“随机”数列(也称随机数流)。我们
x0 76 5776
2 mod 10 2
mod 10
577 mod 100 77
x1 77
x 77 ) 1 12
(或者直接从5776取中取中间的两个数得
4-3 常用的随机数发生器

u1 x1 /10 x1 /100 0.77
2
2 2 5929 2 由于 x12 77
如果精心设计算法,就可以生成具有真正随
机数的统计性质的伪随机数。通常,只要所生成 的伪随机数能通过一系列统计检验(如独立性、 均匀性)就可以把它们作为真正的随机数使用。
6
4-2 随机数发生器的概念
一个优良的随机数发生器应具有以下 特征:
1. 产生的随机数必须是[0,1)之间均匀分布的 2. 产生的随机数必须是独立同分布 (IID) 3. 可产生相同的数列, 又可产生不同的数列 4. 数列具有足够长的(重复)周期 5. 产生随机数的速度快 6. 占有内存小
u n 为[0,1)区间上的数。
2k
初始值x0为 2k 位非负整数,关于k的取值一般最小取2, 为方便有时也取1。
11
4-3 常用的随机数发生器
例4.1 取k=1, x0 =76,求由“平方取中法”可 以得到如下随机数。 2 x0 2 76 2 5776 解: 2
2 x0 76 2 2 取 x1 mod 10 2 2 x 76 10 10 2 0 x1 mod 10 10 10 5776 mod 100 10 5776 mod 577 mod 100 100 10 77
取 则
x2 92
x1 77 5929
u2 x2 / 1002 0.92
x 92
u2 x2 /100 0.92
依次取下去,我们可以得到如下表:
13
4-3 常用的随机数发生器
相关主题