-
随机数的产生
摘
要
本
p>
文
研
究
了
连
续
型
随
机
数
列
的
< br>产
生
,
先
给
出
了
均
匀
分
布
的
随
p>
机
数
的
产
生
算
法
,
在
通
过
均
< br>匀
分
布
的
随
机
数
变
换
得
到
其
他
p>
连
续
型
随
机
数
的
产
生
算
法
.
< br>我
们
给
出
了
产
生
均
匀
分
布
随
机
p>
数
的
算
法
,
然
后
探
讨
了
同
余
< br>法
的
理
论
原
理
.
通
过
均
匀
随
机
p>
数
产
生
其
他
分
布
的
随
机
数
,
< br>我
们
列
举
了
几
种
通
用
算
法
,
并
p>
讨
论
各
个
算
法
的
优
缺
点
。
正
文
一、
随机数与伪随机数
随机变量
η
的抽样序列
?
1
p>
,
?
2
,
?
?
n
,…称为随机数
列.
如果随机变量
η
是均匀分布的,
则
η
的抽样序
列
?
1
,
?<
/p>
2
,
?
?
n
,
…称为均匀随机数列;
< br>如果随机变量
η
是正态分布的随机变量则称其抽样序列为
正态随机数列.
比如在掷一枚骰子的随机试验中出现的点数<
/p>
x
是一个随机变量,该随机变量就服从
离
散型均匀分布,
x
取值为
1
,
2
,
3
,
4
,
5
,
6
,取每个数的概率相等均为
1
/
6
.如何得
到
x
的随机数
?
通过重复进行掷骰子的试验得到的一组观测结果
x
1
,
x
2
,
?
x
n
,
< br>?
就是
x
的
随机数.要产生取值为
0
,
1
p>
,
2
,…,
9
p>
的离散型均匀分布的随机数,通常的操作方法是
把
< br>10
个完全相同的乒乓球分别标上
0
,
1
,
2
,…,
9
,然后放在一个不透明的袋中,搅拦
< br>均匀后从中摸出一球记号码
x
1
后放回袋中,接着仍将袋中的球搅拌均匀后从袋中再摸出
一球记下号码
< br>x
2
后再放回袋中,
依次下去,
就得到随机序列
x
1
< br>,
x
2
,
?
x
n
,
?
.
通常称类似
这种摸球的方法产生的随
机数为真正的随机数.但是,当我们需要大量的随机数时,这
种实际操作方法需要花费大
量的时间,通常不能满足模拟试验的需要,比如教师不可能
在课堂上做
< br>10000
次掷硬币的试验,来观察出现正面的频率.计算机可以帮助人们在很<
/p>
短时间产生大量的随机数以满足模拟的需要,那么计算机产生的随机数是用类似摸球方
p>
法产生的吗
?
不是.计算机是用某种数学方
法产生的随机数,实际上是按照一定的计算方
法得到的一串数,它们具有类似随机数的性
质,但是它们是依照确定算法产生的,便不
可能是真正的随机数,所以称计算机产生的随
机数为伪随机数.在模拟计算中通常使用
伪随机数.对这些伪随机数,只要通过统计检验
符合一些统计要求,如均匀性、随机性
等,就可以作为真正的随机数来使用,我们将称这样产生的伪随机数为随机数.
在计算机上用数学方法产生随机数的一般要求如下:
1)
产生的随机数列要有均匀性、抽样的随机性、试验的独立性和前后的
一致性.
2)
产生的随机数列要有足
够长的周期,以满足模拟实际问题的要求.
3)
产生随机数的速度要快,占用的内存少.
计算机产
生随机数的方法内容是丰富的,在这里我们介绍几种方法,计算机通常是
先产生
[0
,
1]
区间上均匀
分布的随机数,然后再产生其他分布的随机数.
二
、
一
维
均
匀
分
布
随机
< br>数
的
产
生
一般采用某种数值计算方法产生随机数序列,在计算机上运算来得到
.
通常是利用递推公式:
三
、
非
p>
均
匀
分
布
随
机数
的
产
生
3.1
一
般
通
用
方
法
数学软件有产生常用分布随机数的功能,但是对
特殊分布需要数据量很大时不太有效,
需要寻求一种简便、经济、可靠
< br>,
并能在计算机上实现的产生随机数的方法
.
利用在
(0 , 1)
区间上均匀分布的随机数来模拟具有给定分布的连续型随机数
.
1
.
反函数法
设连续型随机变量
Y
的概率函数为
f(x),
需产生给定分布的随机数
.
步骤
p>
:1
)产生
n
个<
/p>
RND
随机数
r1
,
r2
,…,
rn
;
y
i
2
)
从等式
r
i
?
f
(
y
)
dy
中解出
y
i
;
?
?
?
所得
yi
,
i=1,2,
…
,n
即所求
.
基本原理:
设随机变量
Y
的分布函数
F(y)<
/p>
是连续函数,而且随机变量
X
~
U(0,1)
,令
Z=F
-
1(X)
,
则
Z
与
Y
有相同分布。
证明
: FZ(z)=
P{F
-
1(X)
≤
z}=
P{X
≤
F(z)}
=G(F(z)) = F(z)
因
G(x)
是随机变量
X
的分布函数: