线性同余生成器的伪随机数生成器算法.docxVIP

  • 32
  • 0
  • 约小于1千字
  • 约 2页
  • 2023-04-03 发布于湖南
  • 举报

线性同余生成器的伪随机数生成器算法.docx

线性同余生成器的伪随机数生成器算法 线性同余生成器(Linear congruential generator,LCG)是一种使用常用的整数计算来生成伪随机数的重要方法,它的优点是速度快,操作简单,空间利用率高。 概念: 线性同余生成器是指具有一定算法规律的数发生器,通过经过算术运算生成伪随机数,将Xn视为上一次产生的伪随机数,Xn+1为新产生的伪随机数,采用以下公式: Xn+1 = ( aXn + c ) mod m 其中,a,c,m是预先给定的数字,它们称为系数 (coefficients)。 注意,a,c,m也可以是负数。 算法细节: (1) 计算X0: (4) 用xn生成伪随机数: 为按指定的限定范围生成伪随机数,用公式: Rn = Xn / m( Xn 为整数 ) 确定Rn UNIFORM [0,1]。 比如Rn可以按[0,N]写成: rn = Xn MOd N 若想产生指定概率数列中符合特定概率分布的伪随机数可采用概率抉择(probability-select)法。 (5) 用Xn+1替换Xn: 将 Xn+1 替换为 Xn,以便按此循环重复上述步骤2、3、4。 注意:着重要把握 a,c,m 的取值条件,不同取值会使生成的伪随机数具有不同特性。 (1)m要满足m0且m为朴素数; (2) c不能等于0; (3) a必须和m互素 (也就是最大公约数只能为1),同时a要满足以下条件: (1) a必须比m小; (2) a中不能有因子被整除; (4) X0称为种子,可以由用户自定义或采用系统提供的随机初始值,一般不应小于m的1/4 。 通常,指定合理的a,c,m 和X0能获得具有良好随机性的伪随机数序列。

文档评论(0)

1亿VIP精品文档

相关文档