要编程得到服从均匀分布的伪随机数是容易的。C语言、Java语言等都提供了相应的函数。但是要想生成服从正态分布的随机数就没那么容易了。
得到服从正态分布的随机数的基本思想是先得到服从均匀分布的随机数,再将服从均匀分布的随机数转变为服从正态分布。接下来就先分析三个从均匀分布到正态分布转变的方法。然后编程实现其中的两个方法并对程序实现运作的效果进行统计分析。
1、方法分析(1)利用分布函数的反函数若要得到分布函数为F(x)的随机变量Y。可令,其中u是服从均匀分布的随机变量,有因而,对于任意的分布函数,只要求出它的反函数,就可以由服从均匀分布的随机变量实例来生成服从该分布函数的随机变量实例。现在来看正态分布的分布函数,对于,其分布函数为:显然,要想求其反函数是相当困难的,同时要想编程实现也很复杂。可见,用此种方法来生成服从正态分布的随机变量实例并不可取。
(2)利用中心极限定理第二种方法利用林德伯格—莱维(Lindeberg—Levi)中心极限定理:如果随机变量序列独立同分布,并且具有有限的数学期望和方差则对一切x∈R有
因此,对于服从均匀分布的随机变量Xi,只要n充分大,随机变量
为正态分布。我们将实现这一方法。这里 Ri为[0,1]之间均匀分布的随机数
大海,别为森林的渺小而沮丧,