2.随机数-蒙特卡罗方法-教学课件.ppt
第二章 随机数1.随机数的定义及产生方法 2.伪随机数3.产生伪随机数的乘同余方法4.产生伪随机数的乘加同余方法5.产生伪随机数的其他方法6.伪随机数序列的均匀性和独立性 作 业第二章 随机数 由具有已知分布的总体中抽取简单子样,在蒙特卡罗方法中占有非常重要的地位。总体和子样的关系,属于一般和个别的关系,或者说属于共性和个性的关系。由具有已知分布的总体中产生简单子样,就是由简单子样中若干个性近似地反映总体的共性。随机数是实现由已知分布抽样的基本量,在由已知分布的抽样过程中,将随机数作为已知量,用适当的数学方法可以由它产生具有任意已知分布的简单子样。1.随机数的定义及产生方法1)随机数的定义及性质2)随机数表3)物理方法1)随机数的定义及性质 在连续型随机变量的分布中,最简单而且最基本的分布是单位均匀分布。由该分布抽取的简单子样称,随机数序列,其中每一个体称为随机数。单位均匀分布也称为0,1上的均匀分布,其分布密度函数为:分布函数为:其中P()表示事件发生的概率。反之,如果随机变量序列1,2对于任意自然数s,由s个元素所组成的s维空间上的点(n+1,n+s)在Gs上均匀分布,则它们是随机数序列。由于随机数在蒙特卡罗方法中所处的特殊地位,它们虽然也属于由具有已知分布的总体中产生简单子样的问题,但就产生方法而言,却有着本质上的差别。2)随机数表 为了产生随机数,可以使用随机数表。随机数表是由0,1,9十个数字组成,每个数字以0.1的等概率出现,数字之间相互独立。这些数字序列叫作随机数字序列。如果要得到n位有效数字的随机数,只需将表中每n个相邻的随机数字合并在一起,且在最高位的前边加上小数点即可。例如,某随机数表的第一行数字为7634258910,要想得到三位有效数字的随机数依次为0.763,0.425,0.891。因为随机数表需在计算机中占有很大内存,而且也难以满足蒙特卡罗方法对随机数需要量非常大的要求,因此,该方法不适于在计算机上使用。3)物理方法 用物理方法产生随机数的基本原理是:利用某些物理现象,在计算机上增加些特殊设备,可以在计算机上直接产生随机数。这些特殊设备称为随机数发生器。用来作为随机数发生器的物理源主要有两种:一种是根据放射性物质的放射性,另一种是利用计算机的固有噪声。一般情况下,任意一个随机数在计算机内总是用二进制的数表示的:其中i(i=1,2,m)或者为0,或者为1。2.伪随机数1)伪随机数2)伪随机数存在的两个问题3)伪随机数的周期和最大容量 1)伪随机数 在计算机上产生随机数最实用、最常见的方法是数学方法,即用如下递推公式:产生随机数序列。对于给定的初始值1,2,k,确定n+k,=1,2,。经常使用的是k=1的情况,其递推公式为:对于给定的初始值1,确定n+1,=,由于这两个问题的存在,常称用数学方法产生的随机数为伪随机数。对于以上存在的两个问题,作如下具体分析。关于第一个问题,不能从本质上加以改变,但只要递推公式选得比较好,随机数间的相互独立性是可以近似满足的。至于第二个问题,则不是本质的。因为用蒙特卡罗方法解任何具体问题时,所使用的随机数的个数总是有限的,只要所用随机数的个数不超过伪随机数序列出现循环现象时的长度就可以了。用数学方法产生的伪随机数容易在计算机上得到,可以进行复算,而且不受计算机型号的限制。因此,这种方法虽然存在着一些问题,但仍然被广泛地在计算机上使用,是在计算机上产生伪随机数的主要方法。3.产生伪随机数的乘同余方法 乘同余方法是由Lehmer在1951年提出来的,它的一般形式是:对于任一初始值x1,伪随机数序列由下面递推公式确定:其中a为常数。1)乘同余方法的最大容量的上界 对于任意正整数M,根据数论中的标准分解定理,总可以分解成如下形式:其中P0=2,P1,Pr表示不同的奇素数,0表示非负整数,1,r表示正整数。a无论取什么值,乘同余方法的最大容量的上界为:的最小公倍数。其中: