搜档网
当前位置:搜档网 › 正态分布伪随机数生成方法总结

正态分布伪随机数生成方法总结

用C语言产生随机数

用c语言产生随机数 在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。 可能大家都知道C语言中的随机函数random,可是random函数并不是ANSI C标准,所以说,random函数不能在gcc,vc等编译器下编译通过。 rand()会返回一随机数值,围在0至RAND_MAX 间。返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,(其值至少为32767),运算的结果是一个不定的数,要看你定义的变量类型,int整形的话就是32767。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。具体见下面的例子。 一如何产生不可预见的随机序列呢 利用srand((unsigned int)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的。

在C语言里所提供的随机数发生器的用法:现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值围从0~65535; 2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间) 3) 根据需要多次调用rand(),从而不间断地得到新的随机数; 4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。 下面是0~32767之间的随机数程序: #include #include #include //使用当前时钟做种子 void main( void ) {int i; srand( (unsigned)time( NULL ) ); //初始化随机数for( i = 0; i < 10;i++ ) //打印出10个随机数 printf( " %d\n", rand() ); } 根据上面的程序可以很容易得到0~1之间的随机数:

正态分布随机数生成算法

概率论与数理统计课程设计 题目:正态分布随机数生成算法 要编程得到服从均匀分布的伪随机数是容易的。C语言、Java语言等都提供了相应的函

数。但是要想生成服从正态分布的随机数就没那么容易了。 得到服从正态分布的随机数的基本思想是先得到服从均匀分布的随机数,再将服从均匀分布的随机数转变为服从正态分布。接下来就先分析三个从均匀分布到正态分布转变的方法。然后编程实现其中的两个方法并对程序实现运作的效果进行统计分析。 1、 方法分析 (1) 利用分布函数的反函数 若要得到分布函数为F(x)的随机变量Y 。 可令1()Y F u -=, 其中u 是服从均匀分布的随机变量,有 1 ()(())() P Y y P U F y F y -≤=≤= 因而,对于任意的分布函数,只要求出它的反函数,就可以由服从均匀分布的随机变量实例来生成服从该分布函数的随机变量实例。 现在来看正态分布的分布函数,对于2 ~(,)X N μσ,其分布函数为: 2 2()21 ()t x F x e μσ ---∞ = ? 显然,要想求其反函数是相当困难的,同时要想编程实现也很复杂。可见,用此种方法来生成服从正态分布的随机变量实例并不可取。 (2) 利用中心极限定理 第二种方法利用林德伯格—莱维(Lindeberg —Levi)中心极限定理:如果随机变量序列 12,,,,n X X X 独立同分布,并且具有有限的数学期望和方差 ()()2 ,0(1,2,),i i E X D X i μσ ==>= 则对一切x R ∈有 2 2 1lim t n x i n i P X n x dt μ- -∞ →∞ =? ?? -≤= ????? ∑? 因此,对于服从均匀分布的随机变量i X ,只要n 充分大, 11 n i i X n μ=? -? ?∑就服从()0,1N 。我们将实现这一方法。 (3) 使用Box Muller 方法 先证明2 2 2x e dx π-∞-∞ =? : 令2 2 x I e dx -∞-∞ = ? ,则

各种分布的随机数生成算法

各型分布随机数的产生算法 随机序列主要用概率密度函数(PDF〃Probability Density Function)来描述。 一、均匀分布U(a,b) ?1x∈[a,b]? PDF为f(x)=?b?a?0〃其他? 生成算法:x=a+(b?a)u〃式中u为[0,1]区间均匀分布的随机数(下同)。 二、指数分布e(β) x?1?exp(?x∈[0,∞)βPDF为f(x)=?β ?0〃其他? 生成算法:x=?βln(1?u)或x=?βln(u)。由于(1?u)与u同为[0,1]均匀分布〃所以可用u 替换(1?u)。下面凡涉及到(1?u)的地方均可用u替换。 三、瑞利分布R(μ) ?xx2 exp[?x≥0?回波振幅的PDF为f(x)=?μ2 2μ2 ?0〃其他? 生成算法:x=?2μ2ln(1?u)。 四、韦布尔分布Weibull(α,β) xα??αα?1?αβxexp[?(]x∈(0,∞)βPDF为f(x)=? ?0〃其他? 生成算法:x=β[?ln(1?u)]1/α 五、高斯(正态)分布N(μ,σ2) ?1(x?μ)2 exp[?]x∈?2PDF为f(x)=?2πσ 2σ ?0〃其他? 生成算法: 1?y=?2lnu1sin(2πu2)生成标准正态分布N(0,1)〃式中u1和u2是相互独立的[0,1]区间

均匀分布的随机序列。 2?x=μ+σy产生N(μ,σ2)分布随机序列。 六、对数正态分布Ln(μ,σ2) ?1(lnx?μ)2 exp[?x>0PDF为f(x)=?2πσx 2σ2 ?0〃其他? 生成算法: 1?产生高斯随机序列y=N(μ,σ2)。 2?由于y=g(x)=lnx〃所以x=g?1(y)=exp(y)。 七、斯威林(Swerling)分布 7.1 SwerlingⅠ、Ⅱ型 7.1.1 截面积起伏 σ?1?exp[σ≥0?σ0截面积的PDF为f(σ)=?σ0〃【指数分布e(σ0)】 ?0〃其他? 生成算法:σ=?σ0ln(1?u)。 7.1.2 回波振幅起伏 ?AA2 ?exp[?2]A≥0〃式中A2=σ〃2A02=σ0。回波振幅的PDF为f(A)=?A02【瑞利分布R(A0)】2A0?0〃其他? 生成算法:A=?2A02ln(1?u)=σ0ln(1?u)。也可由A2=σ得A==?0ln(1?u) 7.2 SwerlingⅢ、Ⅳ型 7.2.1 截面积起伏 2σ?4σ]σ≥0?2exp[?σσ截面积的PDF为f(σ)=?0〃 0?0〃其他? 生成算法:σ=?式中u1和u2是相互独立的[0,1]区间均匀分布随机序列。 [ln(1?u1)+ln(1?u2)]〃2

正态分布总结

第13讲 正态分布 教学目的:理解并熟练掌握正态分布的密度函数、分布函数、数字特征及线性性质。 教学重点:正态分布的密度函数和分布函数。 教学难点:正态分布密度曲线的特征及正态分布的线性性质。 教学学时:2学时 教学过程: 第四章 正态分布 §4.1 正态分布的概率密度与分布函数 在讨论正态分布之前,我们先计算积分()? ∞ +∞ --- dx e x 2 2 221σ μσ π。 首先计算? ∞ +∞ --dx e x 2 2 。因为 π θ σπ 20 2 20 2 2 2 2 2 2 22 2 == = ?? ? ?? ? ? ∞ +- +- ∞ +∞ -- ∞ +∞ --rdr e d d e dy e dx e r R x x y x (利用极坐标计算) 所以π 22 2 =? ∞ +∞ -- dx e x 。 记 t x =-σ μ ,则利用定积分的换元法有 ()1 2212121212 2 22 2 2 2 == = = ? ? ? ∞ +∞ -- ∞ +∞ -- ∞ +∞ --- ππ π π σ πσ μdt e dt e dx e t t x 因为 ()0 212 2 2≥-- σ μσ πx e ,所以它可以作为某个连续随机变量的概率密度函数。 定义 如果连续随机变量X 的概率密度为 ()(), ,212 2 2+∞<<∞-= -- x e x f x σ μσ π

则称随机变量X 服从正态分布,记作()2 ,~σμN X ,其中()0,>σ σμ是正态分布的参 数。正态分布也称为高斯(Gauss )分布。 对于1,0==σμ的特殊情况,即如果()1,0~N X ,则称X 服从标准正态分布,它的概率密度记为()x ?,有()2 2 21x e x - = π ?。 函数()2 2 21x e x - = π?的图象的特点: 令()0 22 2 =-= '- x e x x π ?,得驻点0=x 。根据()x ?'的正负性可知, 0=x 是()x ?的 极大值点,该点坐标为???? ? ? π21 , 0。 令()()0 212 2 2 =-= ''- x e x x π ?,得1±=x ,根据()x ?''的正负性可知,函数()x ?在() 1,-∞-和()+∞,1内是凹的,在()1,1-内是凸的, ???? ? ? --2 121, 1e π 和??? ? ? ?- 2 121,1e π 是拐点。 因为021lim 2 2 =- ∞ →x x e π ,所以x 轴是该曲线的渐近线。 根据()x ?的偶函数性质,函数()x ?的图象关于y 轴对称。 根据上述特点作出()x ?的曲线如下:

正态分布随机数

数学模型: 设连续型随机变量X 的高斯分布的概率密度为 ( )22 ()2,x f x μσ-= -∞<x <+∞ (3-1) 其中μ,σ(σ>0)为常数,则称X 服从参数为μ,σ的正态分布或高斯(Gauss)分布,记为X ~N (μ,2σ)。均值和方差的计算见公式3-2和公式3-3所示,可得到正态分布随机变量X 的均值E(X)=μ和方差D(X)=2σ。 ()()E X xf x dx +∞ -∞ =? (3-2) 2()()D X x f x dx +∞ -∞ =? (3-3) ()()E X xf x dx +∞ -∞ =? 22 ()2x dx μσ-- +∞ -∞ =? 令 x t μ σ -=,则 2 2()()t E X t dt σμσ+∞ --∞ =+?? 2 2 22t t dt dt σ μ+∞ +∞---∞ -∞ =+?? ? 0μμ=+= 根据方差的定义可知: 2 (){[()]} D X E X E X =- 所以,2 (){[()]}D X E X E X =- 2()22()x x dt μσμ-- +∞ -∞ = -? 2222 t t dt σσ+∞ --∞ =?? 2 22 2t t dt σ+∞ --∞ =?

2 σ= 即知正态分布的两个参数分别是该分布的数学期望和方差。 中心极限定理: 设随机变量12,,,n X X X ???相互独立,服从同一分布,且具有相同的均值和方差:()k E X μ=,2()0(1,2,,)k D X k n σ=≠=???,则随机变量 () n n n k k k n X E X X n Y μ --= = ∑∑∑ (3-4) 的分布函数()n F x 对于任意x 都满足 2 2 lim ()lim }n t k x n n n X n F x P x dt μ →∞ →∞ -=≤=∑? (3-5) 即当n 趋向于无穷大时,随机变量n Y 近似的服从标准正态分布N(0,l)。在实际应用中当。大于等于30时,可以把1n i i Y X ==∑当作服从均值为n μ,方差为n 2σ的 正态分布,那么变量'Y = 近似服从标准正态分布N ~(0,l)。 Box-Muller 变换法: 变换法是通过一个变换将一个分布的随机数变换成一个不同分布的随机数。高斯分布的密度函数见公式3-1所示,通过Box-Muller 变换,它可以产生精确的正态分布的随机变量。其变换式如下 : 1)y v π (3-6) 2)y v π (3-7) 式中u ,v 是在区间[0,1]上服从均匀分布,且相互独立的随机变量,所以得到的随机变量1y ,2y 也应该是相互独立的,且服从N ~(0,1)的标准正态分布。 Box-Muller 变换的推导过程如下: 由公式3-6和公式3-7可得: 221212 2 1 ,()2y y y u e v arctg y π+- == (3-8)

项分布、超几何分布、正态分布总结归纳及练习

二项分布?还是超几何分布 二项分布与超几何分布是两个非常重要的、应用广泛的概率模型,实际中的许多问题都可以利用 这两个概率模型来解决.在实际应用中,理解并区分两个概率模型是至关重要的.下面举例进行对比辨析. 8个白球、2个黑球,从中随机地连续抽取3次,每次取1个球.求: (1)有放回抽样时,取到黑球的个数X的分布列; (2)不放回抽样时,取到黑球的个数Y的分布列. 解:(1)有放回抽样时,取到的黑球数X可能的取值为0,1,2,3.又由于每次取到黑球的概率 均为 5 1,3次取球可以看成3次独立重复试验,则1~35X B ?? ???,. 3 3 1464(0)55125P X C ????==?= ? ?????∴; 1 2 131448(1)55125P X C ????==?= ? ?????; 2 1 23 1412(2)55125P X C ????==?= ? ?????; 3 33141(3)55125 P X C ????==?= ? ?????. 因此,X 的分布列为 (2)不放回抽样时,取到的黑球数Y可能的取值为0,1,2,且有: 03283107(0)15C C P Y C ===;12283107(1)15C C P Y C ===;21283101 (2)15 C C P Y C ===. 因此,Y 的分布列为 某食品厂为了检查一条自动包装流水线的生产情况,随机抽取该流水线上的40件产品作为样本 称出它们的重量(单位:克),重量的分组区间为(490,495],(495,500],……,(510,515],由此 得到样本的频率分布直方图,如图4 (1)根据频率分布直方图,求重量超过505克的产品数量, (2)在上述抽取的40件产品中任取2件,设Y 为重量超过505克 的产品数量,求Y 的分布列; (3)从该流水线上任取5件产品,求恰有2件产品的重量超过505 克的概率。

正态分布随机数的产生

四院四队 正态分布随机数的产生 实验报告 2014年5月26日

正态分布随机数的产生 一、 实验简述 通过matlab 实现正态分布N(0,1)随机数的产生。 二、 历史背景 正态分布是最重要的一种概率分布。正态分布概念是由德国的数学家和天文学家Moivre 于1733年首次提出的,但由于德国数学家Gauss 率先将其应用于天文学家研究,故正态分布又叫高斯分布,高斯这项工作对后世的影响极大,他使正态分布同时有了“高斯分布”的名称,后世之所以多将最小二乘法的发明权归之于他,也是出于这一工作。高斯是一个伟大的数学家,重要的贡献不胜枚举。但现今德国10马克的印有高斯头像的钞票,其上还印有正态分布的密度曲线。这传达了一种想法:在高斯的一切科学贡献中,其对人类文明影响最大者,就是这一项。在高斯刚作出这个发现之初,也许人们还只能从其理论的简化上来评价其优越性,其全部影响还不能充分看出来。这要到20世纪正态小样本理论充分发展起来以后。拉普拉斯很快得知高斯的工作,并马上将其与他发现的中心极限定理联系起来,为此,他在即将发表的一篇文章(发表于1810年)上加上了一点补充,指出如若误差可看成许多量的叠加,根据他的中心极限定理,误差理应有高斯分布。这是历史上第一次提到所谓“元误差学说”——误差是由大量的、由种种原因产生的元误差叠加而成。后来到1837年,海根(G.Hagen )在一篇论文中正式提出了这个学说。 其实,他提出的形式有相当大的局限性:海根把误差设想成个数很多的、独立同分布的“元误差” 之和,每只取两值,其概率都是1/2,由此出发,按狄莫佛的中心极限定理,立即就得出误差(近似地)服从正态分布。拉普拉斯所指出的这一点有重大的意义,在于他给误差的正态理论一个更自然合理、更令人信服的解释。因为,高斯的说法有一点循环论证的气味:由于算术平均是优良的,推出误差必须服从正态分布;反过来,由后一结论又推出算术平均及最小二乘估计的优良性,故必须认定这二者之一(算术平均的优良性,误差的正态性) 为出发点。但算术平均到底并没有自行成立的理由,以它作为理论中一个预设的出发点,终觉有其不足之处。拉普拉斯的理论把这断裂的一环连接起来,使之成为一个和谐的整体,实有着极重大的意义。 三、 实验步骤 设U 1,U 2相互独立同服从U(0,1),令 1 2 112(2lnU )cos(2U )X π=-

一维正态分布随机数序列的产生方法

一维正态分布随机数序列的产生方法 一、文献综述 1.随机数的定义及产生方法 1).随机数的定义及性质 在连续型随机变量的分布中,最简单而且最基本的分布是单位均匀分布。由该分布抽取的简单子样称,随机数序列,其中每一个体称为随机数。 单位均匀分布也称为[0,1]上的均匀分布。 由于随机数在蒙特卡罗方法中占有极其重要的位置,我们用专门的符号ξ表示。由随机数序列的定义可知,ξ1,ξ2,…是相互独立且具有相同单位均匀分布的随机数序列。也就是说,独立性、均匀性是随机数必备的两个特点。 随机数具有非常重要的性质:对于任意自然数s,由s个随机数组成的 s维空间上的点(ξn+1,ξn+2,…ξn+s)在s维空间的单位立方体Gs上 均匀分布,即对任意的ai,如下等式成立: 其中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).物理方法

用C语言的rand()和srand()产生伪随机数的方法总结

标准库(被包含于中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void); 从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。 函数二:void srand(unsigned seed); 参数seed是rand()的种子,用来初始化rand()的起始值。 可以认为rand()在每次被调用的时候,它会查看: 1)如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用srand(seed)一次来初始化它的起始值。 2)如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)一次。 根据上面的第一点我们可以得出: 1)如果希望rand()在每次程序运行时产生的值都不一样,必须给srand(seed)中的seed一个变值,这个变值必须在每次程序运行时都不一样(比如到目前为止流逝的时间)。 2)否则,如果给seed指定的是一个定值,那么每次程序运行时rand()产生的值都会一样,虽然这个值会是[seed, RAND_MAX(0x7fff))之间的一个随机取得的值。 3)如果在调用rand()之前没有调用过srand(seed),效果将和调用了srand(1)再调用rand()一样(1也是一个定值)。 举几个例子,假设我们要取得0~6之间的随机整数(不含6本身): 例一,不指定seed: for(int i=0;i<10;i++){ ran_num=rand() % 6; cout<

编写一个产生符合高斯分布的随机数函数

编写一个产生符合高斯分布的随机数函数信号检测与估计课程作业作业要求 1、利用计算机内部函数产生高斯分布的随机数,分别画出500,10000,100000点的波形,并进行统计分析(分别画出概率密度曲线,计算均值与方差) 2、利用计算机自己编写一个产生符合高斯分布的随机数函数,画出100000点的波形,并进行统计分析(同一) 提示:这一问分两步做,第一步先产生一个均匀分布的随机数序列(乘同余法、混合同余法等,可以用自己的方法),第二步通过适当变换得到符合高斯分布概率模型的随机数列 3、对随机数产生函数和高斯分布进行性能分析,并写出自己对于此次作业和上课的学习体会 一、利用内部函数产生高斯分布 首先利用matlab自带的内部函数randn()就可以方便的生成所需要的高斯分布随机数,然后画出概率密度曲线并计算出均值与方差即可。程序代码如下: A=randn(500,1); B=randn(10000,1);

C=randn(100000,1); subplot(2,3,1); bar(A); subplot(2,3,2); bar(B); subplot(2,3,3); bar(C); [f1,x1]=ksdensity(A); subplot(2,3,4); plot(x1,f1); title('500点高斯分布概率密度函数'); [f2,x2]=ksdensity(B); subplot(2,3,5); plot(x2,f2); title('10000点高斯分布概率密度函数'); [f3,x3]=ksdensity(C); subplot(2,3,6); plot(x3,f3); title('100000点高斯分布概率密度函数'); JZ500=mean(A) JZ1000=mean(B) JZ100000=mean(C) FC500=var(A) FC10000=var(B)

正态分布、概率

信息系统项目管理师重点知识点:完工概率计算总结 例图: 活动BCD的乐观(m)工期都是9天,最可能(o)工期为12天,最悲观(p)工期都是15天,那么在14天内完成单项活动的概率和完成全部这三项活动的概率是多少 首先计算平均工期(PERT):公式--(乐观时间+4*最可能时间+悲观时间)/ 6 (9+4*12+15)/6=12天; 其次计算标准差:公式--(悲观时间-乐观时间)/ 6 ; (15-9)/6=1天 再计算偏离平均工期:方法--[给出的天数计算(14)-计算出来的平均工期(12)]/标准差(1) (14-12)/1=2 备注:此时得出来的为几,之后就是使用几西格玛 (Sigma)(1σ=68,37%)(2σ=95.46%)(3σ=99.73%)(6σ=99.99966%百万分之三点四) 计算每一项活动在14天内完工的概率是:方法--正态分布概率+西格玛/偏离平均工期数 50%+95.46%/2=97.73% 备注:50%参考正态分布图,95.46参考2西格玛值; 计算全部活动在14天内完工概率是:方法--每一项活动的概率相乘 97.73%*97.73%*97.73%=93.34% 下图为简要正态分布图:

备注:正态分布有50%成功,有50%不成功 如计算将上面的14天,修改为13天; 偏离平均工期就是1天,计算方法:(13-12)/1=1天,则应该使用1西格玛; 计算每一项活动在13天内完工的概率是:方法--正态分布概率+西格玛/偏离平均工期数 50%+68.37%/2=84.19% 备注:50%参考正态分布图,68.37参考1西格玛值; 计算全部活动在13天内完工概率是:方法--每一项活动的概率相乘 84.19%*84.19%*84.19%=59.67% 如果计算为11-15天的概率:最小值的概率+最大值的概率 68.37/2+99.75/2=84.06%

随机数生成函数C

随机数生成函数srand() rand() 2007年12月11日星期二01:42 如果srand每次输入的数值是一样的,那么每次运行产生的随机数也是一样的,srand(n) for(10) rand() 也就是说,以一个固定的数值作为种子是一个缺点。通常的做法是以这样一句代码srand((unsigned) time(NULL));来取代,这样将使得种子为一个不固定的数,这样产生的随机数就不会每次执行都一样了。 1,先看一个例子 #include #include #include using namespace std; int main( void ) { int i; /* Seed the random-number generator with current time so that * the numbers will be different every time we run. */ srand( (unsigned)time( NULL ) ); /* Display 10 numbers. */ for( i = 0; i < 10;i++ ) printf( " %6d\n", rand() ); } 2.关于time.h time.h中包含很多有趣的函数,譬如 char *ctime(long *clock) 本函数把clock所指的时间(如由函数time返回的时间)转换成下列格式的 字符串:Mon Nov 21 11:31:54 1983\n\0 #i nclude #i nclude #i nclude using namespace std; void main() {

二项分布、超几何分布、正态分布总结归纳与练习

二项分布?还是超几何分布 二项分布与超几何分布是两个非常重要的、应用广泛的概率模型,实际中的许多问题都可以利用 这两个概率模型来解决.在实际应用中,理解并区分两个概率模型是至关重要的.下面举例进行对比辨析.例 1 袋中有 8 个白球、 2 个黑球,从中随机地连续抽取 3 次,每次取 1 个球.求:( 1)有放回抽样时,取到黑球的个数X的分布列; ( 2)不放回抽样时,取到黑球的个数Y的分布列. 解:( 1)有放回抽样时,取到的黑球数X可能的取值为0,1, 2, 3.又由于每次取到黑球的概率 均为1 , 3 次取球可以看成 3 次独立重复试验,则 1 ,.5X~B 35 0312 ∴ P(X 0) C301 464 ;P(X 1)C31 1 448 ; 5512555125 21 P(X 3) C33 130 P(X 2) C321 412 ;4 1 .5512555125 因此, X 的分布列为 X0123 P 6448121 125125125125 (2)不放回抽样时,取到的黑球数Y可能的取值为0, 1,2,且有: P(Y 0)C20C837 ;P(Y1)C21C82 7 ;P(Y2)C22C81 1 . C10315C10315C10315 因此, Y 的分布列为 Y012 771 P 1515 15 例 2 某食品厂为了检查一条自动包装流水线的生产情况,随机抽取该流水线上的40 件产品作为样本称出它们的重量(单位:克),重量的分组区间为(490,495] , (495,500] ,,, ,(510,515] ,由此得到样本的频率分布直方图,如图4 ( 1)根据频率分布直方图,求重量超过505 克的产品数量 , ( 2)在上述抽取的40 件产品中任取 2 件,设 Y 为重量超过505 克 的产品数量,求Y 的分布列; ( 3)从该流水线上任取 5 件产品,求恰有 2 件产品的重量超过505 克的概率。

随机数生成原理 实现方法 不同编程语言的随机数函数

1-0:Microsoft VC++产生随机数的原理: Srand ( )和Rand( )函数。它本质上是利用线性同余法,y=ax+b(mod m)。其中a,b,m都是常数。因此rand的产生决定于x,x被称为Seed。Seed需要程序中设定,一般情况下取系统时间作为种子。它产生的随机数之间的相关性很小,取值范围是0—32767(int),即双字节(16位数),若用unsigned int 双字节是65535,四字节是4294967295,一般可以满足要求。 1-1:线性同余法: 其中M是模数,A是乘数,C是增量,为初始值,当C=0时,称此算法为乘同余法;若C ≠0,则称算法为混合同余法,当C取不为零的适当数值时,有一些优点,但优点并不突出,故常取C=0。模M大小是发生器周期长短的主要标志,常见有M为素数,取A为M的原根,则周期T=M-1。例如: a=1220703125 a=32719 (程序中用此组数) a=16807 代码: void main( ) { const int n=100; double a=32719,m=1,f[n+1],g[n],seed; m=pow(2,31); cout<<"设置m值为"<>seed; f[0]=seed; for(int i=1;i<=n;i++) //线性同余法生成随机数 { f[i]=fmod((a*f[i-1]),(m-1)); g[i-1]=f[i]/(m-1); cout.setf(ios::fixed);cout.precision(6); //设置输出精度 cout<

二项分布、超几何分布、正态分布总结归纳及练习

二项分布与超几何分布辨析 二项分布与超几何分布是两个非常重要的、应用广泛的概率模型,实际中的许多问题都可以利用这两个概率模型来解决.在实际应用中,理解并区分两个概率模型是至关重要的.下面举例进行对比辨析. 例 袋中有8个白球、2个黑球,从中随机地连续抽取3次,每次取1个球.求: (1)有放回抽样时,取到黑球的个数X的分布列; (2)不放回抽样时,取到黑球的个数Y的分布列. 解:(1)有放回抽样时,取到的黑球数X可能的取值为0,1,2,3.又由于每次取到黑球的概率均 为,3次取球可以看成3次独立重复试验,则1~35X B ?? ???,. 3 03 1464(0)55125P X C ???? ==?= ? ????? ∴; 12 13 1448(1)55125 P X C ???? ==?= ? ?????; 21 231412(2)55125P X C ???? ==?= ? ?????; 3 33 141(3)55125 P X C ???? ==?= ? ?????. 因此,X 的分布列为 X 0 1 2 3 P 64125 48125 12125 1125 2.不放回抽样时,取到的黑球数Y可能的取值为0,1,2,且有: 03283107(0)15C C P Y C ===;12283107(1)15C C P Y C ===;21283101 (2)15 C C P Y C ===. 因此,Y 的分布列为 Y 0 1 2 P 715 715 115 辨析:通过此例可以看出:有放回抽样时,每次抽取时的总体没有改变,因而每次抽到某物的概率都是相同的,可以看成是独立重复试验,此种抽样是二项分布模型.而不放回抽样时,取出一个则总体中就少一个,因此每次取到某物的概率是不同的,此种抽样为超几何分布模型.因此,二项分布模型和超几何分布模型最主要的区别在于是有放回抽样还是不放回抽样.所以,在解有关二项分布和超几何分布问题时,仔细阅读、辨析题目条件是非常重要的. 超几何分布和二项分布都是离散型分布

概率论与数理统计小报告 正态随机数的产生方法

概率论与数理统计小报告(二)_________正态随机数的产生方法 学院数理学院 专业信息与计算科学 班级 姓名 学号

依据中心极限定理产生正态分布随机数 摘要:由中心极限定理可知,当n很大时,具有期望μ,方差σ2的分布近似为标准正态分布,故可据此产生标准正态分布。并利用Matlab自带的函数对结果进行检验。 关键字:正态分布中心极限定理随机数 正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。 若随机变量服从一个位置参数为、尺度参数为的概率分布,记为: 则其概率密度函数为 正态分布的数学期望值或期望值等于位置参数,决定了分布的位置;其方差的开平方或标准差等于

clc,clear for i=1:1000 R=rand(1,12); X(i)=sum(R)-6; end X=X'; m=mean(X) v=var(X) subplot(1,2,1),cdfplot(X) %绘制经验累计分布函数图,显示了一维向量X的累计概率分布F(x)的图形subplot(1,2,2),histfit(X) %绘制分组数据的柱状分布函数图,即频数图 h=kstest(X, [X normcdf(X, 0,1)])% H = kstest(X)执行Kolmogorov-Smirnov检验标准正态分布比较数据向量x的值。零假设是x为标准的正态分布;另一种假设是x不是标准正态分布。在5%显著水平进行检验,若结果h为1,则说明零假设不成立,拒绝零假设。否则,结果为0,零假设成立,即原分布为标准正态分布 运行结果如下: h = 0 (检验表明分布为标准正态分布) R = (产生的一组12个【0,1】上均匀分布的随机数) Columns 1 through 4 0.5700 0.4027 0.3702 0.0801 Columns 5 through 8

随机变量及其分布 小结与复习

复习课: 随机变量及其分布列 教学目标 重点:理解随机变量及其分布的概念,期望与方差等的概念;超几何分布,二项分布,正态分布等的特点;会求条件概率,相互独立事件的概率,独立重复试验的概率等. 难点:理清事件之间的关系,并用其解决一些具体的实际问题. 能力点:分类整合的能力,运算求解能力,分析问题解决问题的能力. 教育点:提高学生的认知水平,为学生塑造良好的数学认识结构. 自主探究点:例题及变式的解题思路的探寻. 易错点:容易出现事件之间的关系混乱,没能理解问题的实际意义. 学法与教具 1.学法:讲授法、讨论法. 2.教具:投影仪. 一、【知识结构】 二、【知识梳理】 1.随机变量 ⑴随机变量定义:在随机试验中,使得每一个试验结果都用一个确定的数字表示.在这个对应关系下,数字随着试验结果的变化而变化.像这种随着试验结果变化而变化的变量称为随机变量.简单说,随机试验的结果可以用一个变量来表示,那么这样的变量叫做随机变量.常用希腊字母x 、y 、ξ、η等表示. ⑵如果随机变量可能取的值可以按次序一一列出(可以是无限个)这样的随机变量叫做离散型随机变量. ⑶如果随机变量可能取的值是某个区间的一切值,这样的随机变量叫做连续型随机变量. 2.概率分布定义(分布列) 设离散型随机变量ξ可能取的值为123,,, ,i x x x x ,ξ取每一个值(1,2, )i x i =的概率 ()i i P x p ξ==,则称表 称为随机变量ξ的概率分布列,简称ξ的分布列. 注:1.离散型随机变量的分布列具有下述两个性质:

(1)0,123≥,,,i p i =;123(2)1p p p +++ = 3.常见的分布列 ⑴二项分布:在一次试验中某事件发生的概率是p ,那么在n 次独立重复试验中这个事件恰发生k 次的概 率为()(1)k k n k n p X k C p p -==-,显然x 是一个随机变量.随机变量x 的概率分布如下: 我们称这样的随机变量x 服从二项分布,记作~(, )X B n p ⑵两点分布列:如果随机变量ξ的分布列为: 这样的分布列称为两点分布列,称随机变量服从两点分布,而称(1)p P ξ==为成功概率.两点分布是特殊的二项分布(1)p ξ~B , ⑶超几何分布:一般地,在含有M 件次品的N 件产品中,任取n 件,其中恰有x 件次品数,则事件{} x k =发生的概率为(),0,1,2,3,,k N k M N M n N C C P X k k m C --===.其中{}m i n , m M n =,且*,,,, n N M N n M N N ≤≤∈,则称分布列 为超几何分布列,如果随机变量的分布列为超几何分布列,则称随机变量服从超几何分布. 4.条件概率 一般地,设,A B 为两个事件,且()0P A >,称() (|)() P AB P B A P A = 为在事件A 发生的条件下,事件B 发 生的条件概率. 注意:⑴0(|)P B A ≤≤1; ⑵可加性:如果B C 和互斥,那么[]()|(|)(|)P B C A P B A P C A =+ 5.相互独立事件的概率 ⑴相互独立事件的定义: 设,A B 两个事件, ()()()P AB P A P B =若 (即事件A 是否发生对事件B 发生的概率没有影响), 则称事

生成高斯分布的matlab程序

clear all; close all; clc; randn('seed',0); %%一维高斯函数 mu=0; sigma=1; x=-6:0.1:6; y=normpdf(x,mu,sigma); plot(x,y); figure; %%二维或多维高斯函数 mu=[00]; sigma=[0.30;00.35]; [x y]=meshgrid(linspace(-8,8,80)',linspace(-8,8,80)'); X=[x(:) y(:)]; z=mvnpdf(X,mu,sigma); surf(x,y,reshape(z,80,80)); hold on; %再生成一个 mu=[40]; sigma=[1.20;0 1.85]; [x y]=meshgrid(linspace(-8,8,80)',linspace(-8,8,80)'); X=[x(:) y(:)]; z=mvnpdf(X,mu,sigma); surf(x,y,reshape(z,80,80)); Matlab 的随机函数(高斯分布均匀分布其它分布) Matlab中随机数生成器主要有: betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布的随机数生成器 frnd f分布的随机数生成器 gamrnd 伽玛分布的随机数生成器 geornd 几何分布的随机数生成器 hygernd 超几何分布的随机数生成器 lognrnd 对数正态分布的随机数生成器 nbinrnd 负二项分布的随机数生成器 ncfrnd 非中心f分布的随机数生成器

C语言程序设计 伪随机数的产生

4.3.1伪随机数的产生 产生伪随机数的函数是rand(),该函数可随机生成0~RAND_MAX之间的一个整数。RAND_MAX是头文件中定义的一个符号常量。ANSI规定RAND_MAX的值不小于32767。 在编写程序时经常需要各种范围的随机数,如投骰子时需要的随机数是1~6,投一枚硬币会有正反面,需要的随机数是0~1。根据公式: n=a+rand()%b 可以得到所需范围内的随机数。其中,a为位移,是所需连续整数范围的第一个数,b是比例因子,是所需连续整数范围的宽度,则希望产生1~6之间随机数的公式为:face=1+rand()%6 【例4-3】编写一个模拟投掷硬币的程序,模拟20次,统计出正面出现的次数。 问题分析:每调用一次rand()函数会产生一个随机数,循环20次可以产生20个随机数。硬币有正反两面,用1代表正面,0代表反面,产生伪随机数的公式为rand()%2。 参考程序如下: /*程序名:4_3.c*/ /*功能:模拟投掷硬币20次,打印投掷结果并统计出正面出现的次数*/ #include #include int main() { int i,face,iCount=0; for(i=1;i<=20;i++) { face=rand()%2; printf("%5d",face); if(i%10==0)printf("\n"); if(face)iCount++; } printf("正面出现次数:%d次\n",iCount); return0; } 运行程序,结果为: 1100100000 1111111010 正面出现次数:11次 如果再次运行该程序,会发现结果与上面的相同。这怎么称得上是随机数呢?实际上,每次调用rand函数产生的一系列数似乎是随机的,但每次执行程序所产生的序列则是重复的。程序调试完成后,可以使用函数srand(),通过提供不同的种子产生不同的随机数序列。

相关主题