当前位置:
文档之家› 基于线性同余法的伪随机数产生算法
基于线性同余法的伪随机数产生算法
运用计算机仿真解决实际问题时,首先要研 究随机数的产生方法,或者称为随机变量的抽样 方法。真正意义上的随机数在某次产生过程中是 按照实验过程中表现的分布概率随机产生的,结 果是不可预测、不可见的[1]。在(0,1)区间均 匀分布随机数 IIDU(0,1)是最基本的随机数, 通过对 IIDU(0,1)的适当变换,可以得到任意 分布的其他随机变量。随机数产生有很长的历史, 最早是采用掷骰子、抽签、摇号、在盒子里取带 有标号的球等方法,现在的彩票、分房等领域, 这些手工方法还广泛使用。但是手工方法无法满 足仿真计算时对大量随机数的需要,因此需要用 计算机来产生随机数。
利用某种方法得到一序列 y1,y2,…,yn,在一定 意义下可作为随机样本 x1,x2,…,xn 的一组样本值, 称 y1,y2,…,yn 是一组具有与 X 相同分布的随 机序列。
运用数学方法产生伪随机序列通常采用递推
公式的方式:
xn=f ( xn-1,xn-2,xn-k )
(1)
产生序列 x1,x2,…,xn,…,当 n 充分大时,
随机序列不是一个数,是一个序列,而随机
数是某个随机序列中的一个。随机数的随机性只
能在随机序列中体现。
设随机变量 X(总体)服从某种随机分布,
对其进行 n 次独立实验,得到一组简单随机样本
序列 x1,x2,…,xn,满足: (1)x1,x2,…,xn 相互独立; (2)每一个 x1,x2,…,xn 都与总体 X 同分布。
1 伪随机数产生算法提出
由于伪随机数是用算法产生的,除受算法本
身的影响外,还受计算机字长及内存等方面的限
制。因此,无论多么优秀的算法,在统计特征上
都不可能完全与从均匀分布中抽样所得的随机数
相同,只是尽可能地近似。对应随机数要求具有
随机性、均匀性、重现性、速度快、独立性、占 用内存空间少、不重复性等要求[8-10]。
第 25 卷第 3 期 2018 年 9 月
辽东学院学报(自然科学版) Journal of Eastern Liaoning University (Natural Science Edition)
Vol. 25 No.3 Sept. 2018
【信息科学与工程】
DOl:10. 14168 / j.issn.1673 - 4939.2018.03.0 3
(1. 辽东学院 信息工程学院,辽宁 丹东 118003;2. 辽东学院 服装与纺织学院,辽宁 丹东 118003; 3. 锦州农村商业银行,辽宁 锦州 121000)
摘 要:随机数产生是计算机仿真领域重要的研究方向。针对物理方法产生随机数具有无法重现、 费用较高等缺点,文章基于线性同余法研究伪随机数产生。首先,分析了伪随机数产生算法的要求,包 括有随机性、均匀性、重现性、速度快、独立性等;然后,研究伪随机数产生算法,包括伪随机序列定义、 线性同余法的概念及性质、线性同余法的解法引理、线性同余发生器产生伪随机数;最后,为了计算机 编程实现,研究产生伪随机数算法程序流程。文章研究内容产生的伪随机数,具有产生速度快、输出序 列周期长等特点,是一种理想的伪随机数产生算法。 关键词:线性同余法;伪随机数;伪随机序列;产生算法;计算机仿真 中图分类号:TP301.6 文献标志码:A 文章编号:1673-4939(2018)03-0201-06
因此无法重复计算,无法实现不改变随机序列的 重复仿真。只有采用将随机数保存到文件的方式, 这样做的缺点是占用存储空间且影响计算速度; 二是产生费用较高。需要在计算机中安装随机数 发生器和电路联接设备,成本较高且不容易获得。
目前大多数仿真都是采用计算机程序来产生 IIDU(0,1)均匀分布随机数,即采用某种确定 的规则,通过递推计算产生数序列。虽然不是真 正的随机数,但具有真正随机数的统计性质,因 此可以当作真正随机数使用。这样的数列称为伪 随机数。所谓“伪”并不是说产生了一个假的随 机数或随机数序列,而是指随机数是由一个已知 的算法产生。伪随机数产生是计算机仿真的基础 性工作,本文运用线性同余法研究伪随机数产生 算法,为计算机仿真提供服务。线性同余算法作 为使用最为广泛的伪随机数产生算法,具有产生 速度快、输出序列周期长等特点[4-5],但是产生 随机数性能依赖于算法所用的时间,所用时间越 多,得到随机数的质量也就越高。
数列具有均匀分布随机变量独立抽样序列的性质,
这一数列就称为伪随机序列。伪随机序列又有狭
义伪随机序列和广义伪随机序列之分。
如果随机误差项的各期望值之间存在着相
关关系,这时,称随机误差项之间存在自相关性
(autocorrelation)或序列相关。
凡自相关函数满足下式:
1
R
x
(
j
)
真正的(0,1)均匀分布随机数可采用物理 方式产生,即在计算机中附加某些物理设备,如 电子噪音发生器、放射源激励计算机等,把具有 随机性质的物理过程转变为随机数,这样产生的 随机数称为真随机数。这种产生随机数的方法存 在两方面弊端[2-3],一是随机数无法重现,无法 对结果进行检查。因为随机过程具有不可重复性,
线性同余发生器可以在一维空间中产生较好
收稿日期:2017-11-06 作者简介:张大伟(1978—),男,山东荣成人, 硕士,讲师,研究方向:计算机应用技术。
·201·
辽东学院学报(自然科学版)
第 25 卷
的随机数,用线性同余法产生均匀随机数相关性 弱到一定程度就可以认为是相互独立的。但传统 的线性同余发生器周期有限,不能够应用于复杂 系统的仿真,而通过将两个或者更多个线性同余 发生器组合而成的混合同余发生器将会有更长的 周期和更好的统计性质。参照已有研究成果[6-7], 本文的研究主要体现在两个方面:一是,构造了 线性同余发生器产生伪随机数的数学模型,提出 了根据参数选择确定伪随机序列的均匀性、独立 性和循环周期的方法;二是,设计了基于 DSP 芯 片的伪随机数产生流程,系统仿真人员可以根据 此流程直接编写程序,提高了仿真工作效率。