概述
线性同余发生器(Linear congruential generator),简称LCG,是一种能产生具有不连续计算的伪随机序列的分段线性方程的算法,它代表了最古老和最知名的伪随机序列生成器算法之一,其理论相对容易理解,并且易于实现和快速,特别是在可以通过存储位截断提供模运算的计算机硬件上。
作为流密码(stream cipher)中常用的伪随机数发生器(pseudo random number generator),其随机性能取决于参数和种子的选择。
递推公式
参数
代表伪随机序列 , 表示模量 , 表示乘数 , 表示增量 , 表示初始值
阶
成立的最小正整数
原根
如果有
称a为模n的原根
若
常见推导公式
公式一
此公式用于从
推导过程如下
进而
公式二
此公式用于求
推导过程如下
两式相减
进而得到
公式三
此公式用于求
公式四
此公式用于求
令
推导过程如下
令
即
参考文章