首页 理论教育确定随机数的方法的优化

确定随机数的方法的优化

【摘要】:常用的确定随机数的方法有下面几种:1.用随机数骰子确定随机数用一个或多个骰子产生一位或多位数随机数。另外,在初值确定以后,所有的随机数就都被唯一确定下来了,不能满足真正随机数的要求。伪随机数需要通过一系列的统计检验,才能当做真正的随机数使用。这种方法产生随机数的周期比平方取中法有所改善,但还是周期不够长。

作为可用的随机数,应具有下述性质:随机性好;速度快;节省时间;循环周期长;易于在计算机上实现;不应退化到反复产生同一个数。常用的确定随机数的方法有下面几种:

1.用随机数骰子确定随机数

用一个或多个骰子产生一位或多位数随机数。用这种方法求出的随机数是属于均匀分布随机数。

2.用计算机确定随机数

通过编写随机数产生程序,用计算机产生随机数。用这种方法产生的随机数便于重复产生,巨产生速度快。但由于这种随机数是根据确定的递推公式求得的,存在着周期现象。另外,在初值确定以后,所有的随机数就都被唯一确定下来了,不能满足真正随机数的要求。因此,这样产生的随机数又称为伪随机数。伪随机数需要通过一系列的统计检验,才能当做真正的随机数使用。

用计算机确定随机数的常用算法有:平方取中法、固定乘数法、移位指令法、加乘同余法、加同余法等。下面介绍其中的几种方法。

(1)用平方取中法求两位随机数 任取一个两位数,将其平方后,得四位数(不是四位数在前面补零),取这四位数的中间两位数为第一个随机数;随后对这第一个随机数进行平方,并取此平方数的中间两位数作为第二个随机数;再平方,…,如此一个个求下去,即可得到所需要数量的随机数。

需要注意的是,这种方法产生退化很快,一旦出现一个零以后,后面都是零,除非采取其他措施。

(2)固定乘数法求两位随机数 将任意一个两位数与任意一个常数相乘,从乘积中截取后面的一半,取其前两位数作为随机数。然后,将这个随机数也与该常数相乘,照样截取后面的一半,取其前两位数作为随机数,…,继续下去,即可达到所需数量的随机数。

如:以67为一两位数,(3)5为一固定乘数,与之相乘,求得两位随机数如下

(67)(3)5=016281 两位随机数:28

(28)(3)5=006804 两位随机数:80

(80)(3)5=019440 两位随机数:44

(44)(3)5=010692 两位随机数:69

(69)(3)5=016767 两位随机数:76

……

这种方法产生随机数的周期比平方取中法有所改善,但还是周期不够长。

(3)加乘同余法 加乘同余法是莱默提出的,是目前常用的产生随机数的方法,其算法公式为

Xn+1=(aXn+C)(mod mn≥0 (7-30)

其中:X0是初始值,常数a是乘子,常数C是增量,常数m模数

用加乘同余法得到的随机数分布更为均匀,周期更长,巨计算速度更快。

3.查随机数表法确定随机数

这种方法比较简单,但随机数表中的随机数也是由计算机根据一定规则运算得到,因而也是伪随机数。