产生随机数。
若得到 ,则取 ;否则 x1 即为 除以 M 的余数,其余类推。若
xn+1 为 M 整除 后的余数,则称 xn+1 与 对模 M 同余。由条件 xn<M 可得
第 8 页 本科毕业设计说明书
即为[0,1]区间上的随机数列。
很据迭代公式的周期性条件可知,当 时,便会产生周期为 T 的重
复循环,即对任意的 n<T,都有 成立。显而易见,这里的 。若 T=M, 则可得到全周期。所以在选择的周期足够长的情况下,便可统计出(0,1)区间上均匀 分布且相互独立的所需随机变量的统计性质。所以选择合适的参数和初值便是我们成 功的关键,接下来我们便针对这个问题进行详细的探讨。文献综述
1) 增量 c 通常情况下取 c=0 便可保证周期长度的要求,且简便了设定初值 的麻烦,这时可将这种产生随机数的方法称之为乘同余法。
2) 初值 x0 当 c=0 时,x0 需取奇数以保证有最大的周期,如取 x0=1。
3) 模 M 在考虑了周期长度和计算时的简便后,一般取 M=2K 或者 M=2K 1(这里 K 指的是二进制计算机的尾部字长)。若 M=2K,且 c=0,则最大周期 可为 2K-2;当 c 不为零时,最大周期则为 2K。一般情况下,计算机的尾部字长都大于 30 位,所以在随机试验中周期长度便不在担忧的范围内。
4) 乘子 乘子的选取对长周期的获得和随机模拟的统计性质都有较为重要 的影响,例如在取 c=0,M=2K 时,应取乘子 或者是 (a 为选定的
任意一个正整数)来保证达到最大的周期 。来;自]优Y尔E论L文W网www.youerw.com +QQ752018766-
假定 M 为素数且 c=0,则可得最大周期可能为 M-1,若想取得最大周期, 则需取为元
根,也就是说 不为零,且素数 p 可整除 M-1,则有 。
从推导理论上来看,我们不会产生数字 1,另外我们知道(0,1)区间上的均匀分布取 端点的概率为零,为了更好的说明这个递推式产生的随机数符合(0,1)区间上的均匀分布, 我们将它与统计软件的内部函数产生的服从(0,1)区间上均匀分布的随机数进行图像对比与 卡方检验。