LCG(linear congruential generator): 一种简单的随机数生成算法

小安小安 in TIPS 2023-09-19 18:29:25

LCG(linearcongruentialgenerator)线性余额算法是一种古老的随机数的算法。LCG算法是以下递推公式。每个下一个随机数都是当前随机数向左移动log2a位置,加上一个C,最后对m的余额,使得随机数限制在0~m-1内

LCG 算法

LCG(linear congruential generator)线性同余算法,是一个古老的产生随机数的算法。由以下参数组成:
WX20230919-182717@2x
LCG 算法是如下的一个递推公式,每下一个随机数是当前随机数向左移动 log2 a 位,加上一个 c,最后对 m 取余,使随机数限制在 0 ~ m-1 内
1092889-20181111164303091-1297703678
从该式可以看出,该算法由于构成简单,具有以下优点:

  • 计算速度快
  • 易于实现
  • 易于写入硬件

以下是针对不同参数 lcg 产生随机数的效果图
1092889-20181111164121674-1169332214
可以看出,针对不同的参数,lcg 产生的效果差别很大

以下是针对不同环境下的参数选择
1092889-20181111164856627-1385462466

-- End --

相关推荐