维普资讯
数学通报 2006年 第45卷 第3期
计算机产生随机数的方法
张淑梅 李 勇
(北京师范大学数学科学学院 100875)
2003年中华人民共和国教育部颁布的 《普通高 量的时间,通常不能满足模拟试验 的需要,比如教
中数学课程标准(实验稿)》在必修3中增加了“了解 师不可能在课堂上做 10000次掷硬币的试验,来观
随机数的意义,能运用模拟方法估计概率”的内容, 察出现正面的频率.计算机可以帮助人们在很短时
那么什么是随机数?计算机中的随机数是如何产生 间产生大量的随机数以满足模拟的需要,那么计算
的? 机产生的随机数是用类似摸球方法产生的吗?不
1 随机数与伪随机数 是.计算机是用某种数学方法产生的随机数,实际
设随机变量 刁的分布函数为F(),则称随机变 上是按照一定的计算方法得到的一串数,它们具有
量 的随机抽样序列{训为分布函数F()的随机 类似随机数的性质,但是它们是依照确定算法产生
数. 的,便不可能是真正的随机数,所以称计算机产生
事实上,随机数 { 就是随机变量 的观测值, 的随机数为伪随机数.在模拟计算 中通常使用伪随
或者说是来 自随机变量 刀的样本.随机数一定是相 机数.
对某一个确定分布而言的. 2 计算机产生随机数的方法
若随机变量 服从正态分布Ⅳ(,d),则称来 计算机产生随机数的方法 内容是丰富的,在这
自 的随机抽样序列{}为正态分布随机数;若随 里我们介绍一种数学方法,这种方法是利用数论中
机变量 服从Eo,1]区间上均匀分布,则称来自77的 的同余原理来产生随机数.计算机通常是先产生
随机抽样序列 {}为[0,1]区间上均匀分布随机 [0,1]区间上均匀分布的随机数 ,然后再产生其他
数. 分布的随机数.
若随机变量刁取值为。1,。2,…,%,取每个数的 2.1 产生[0,1]区间上均匀分布的随机数的方法
概率相等均为1/n,这时称 77服从离散型均匀分布,
[0,1]区问上均匀分布是连续型分布,它表示
来自 的随机抽样序列{训 为离散型均匀分布随 随机变量取Eo,1]区间上任何一个小区间内的点的
机数.比如在掷一枚骰子的随机试验中出现的点数
概率等于该区间的长度.产生 [0,1]区间上随机数
是一个随机变量,该随机变量就服从离散型均匀
的递推公式如下:
分布, 取值为 1,2,3,4,5,6,取每个数的概率相等
r = ( 一1+c)(modM),
均为1/6.如何得到 的随机数?通过重复进行掷骰
子的试验得到的一组观测结果 ,:,… 就是 的 {【= /M (II,=1,2,…)
初值
随机数.
其中 为模数,。为乘子(乘数),c为增量(加数),
再 比如要产生取值为 0,1,2,…,9的离散型均
且 M,n,c,。均为非负整数.给定一组参数 M,。,
匀分布的随机数,通常的操