用线性同余法产生(0,1),均匀分布的随机数,这种方法是当前在离散系统仿真中应用广泛的随机数发生器算法,其递推算法如下
Zi=(aZi-1+c)modM
Ui=Zi/M
式中Z-第i个中间值,初始值Z0为种子
a-常数乘子,取值为314159269
c-常数增量,取值为453806245
M-模,取M=2
Ui-(0,1)区间内均匀分布的随机数
按以上参数得到的随机数算法有以下两点好处:①发生器是满周期的,在范围内可以产生21亿个互不重复的随机数。②当M值很大时,每产生一个随机数都需进行一次很大的数的除法运算,十分耗费机时,而采用以上参数时,可采用“溢出法”来得到对M取模的数值,这将显示著提高产生随机数据的效率。
在随机数发生器的基础上,采用逆变法即可得到负指数分布的随机变量,公式如下
xi=-(1/λ)lnUi