生成随机数的一个可靠算法,高质量的均匀分布的随机函数

随机数产生方法有很多, 如列表法,平方取中法,线性同余法,加法同余法,乘法同余法,混合同余法。这里采用产生随机数最快,统计效果最好的乘法同余法,公式:

Rn+1 = C*Rn(mod M)

n=1,2,3,4,5...

C为常数,Rn为第n个随机数,Rn+1为第n+1个随机数,M为摸,MOD表示做除法只取余数。个参数取值不是随意的,有抽象代数和数论中的模数计算为理论基础。

R0相对于M是素数、C是M的原始方根时,生成的随机数恰恰是一个周期。

一组推荐的采用值:

C=2^18 + 3 = 262147 (262147是素数)

原文地址:https://www.cnblogs.com/zxjyuan/p/1640156.html