1 简介
线性同余发生器(LCG)是一种伪随机序列生成器算法,能产生具有不连续计算的伪随机序列的分段线性方程。生成器由循环关系定义
[1]
:
(2)
表示模量;
(3)
表示乘数;
(4)
表示增量;
(5)
表示初始值。
2 区间长度
线性同余发生器的好处是,通过适当选择参数,区间长度可知且很长。虽然不是唯一标准,但是一般情况下太短的区间长度在伪随机数发生器中是一个致命的缺陷。
虽然LCG能够产生伪随机数,且可以通过正规的随机性测试,但它对参数
和
的选择极为敏感。例如,
和
产生一个简单的
进制计数器,它具有长的周期,但显然非随机
[2]
。
参数选择常见的有三种:(1)
为素数,
;(2)
为2的幂,
;(3)
。