线性同余发生器(Linear Congruential Generator,简称LCG)是一种伪随机数发生器算法。它是基于线性同余方程产生随机数序列的算法,其生成的伪随机数在一定范围内均匀分布。
算法公式为:X_{n+1} = (a * X_n + c) mod m
其中,X_n为第n个随机数,a、c、m为算法的参数。
优点:
- 算法简单,计算速度快。
- 可以产生高质量的随机数。
缺点:
- 周期性较短,最多只能生成m个不同的随机数。
- 生成的随机数质量与参数选择相关,选择不当会导致随机数的质量较低,出现周期性等问题。
- 相邻的随机数之间具有一定的相关性。
使用Python语言实现linear congruential generator算法:
class LCG:
def __init__