c语言产生服从正态分布的随机数,C语言产生满足正态分布的随机数

本文介绍了C语言如何生成服从正态分布的随机数,包括通过均匀分布的随机数求和、Box-Muller方法以及直观的几何方法。提供C++代码示例,演示了三种方法的实现,并在main函数中生成100个正态分布随机数写入文件。
摘要由CSDN通过智能技术生成

C语言中可以通过rand函数生成满足均匀分布的随机数,但是生成满足正太分布的随机数就没有那么简单了,下面对常用的几种方法进行总结并用C++编程实现。

方法一:由均匀分布的随机数来产生

一个简单可行的并且容易编程的方法是:求12个在(0,1)上均匀分布的和,然后减6(12的一半)。这种方法可以用在很多应用中,这12个数的和是Irwin-Hall分布;选择一个方差12。但此推导的结果限制在(-6,6)之间,并且密度为12。

方法二:Box-Muller方法

Box-Muller方法是以两组独立的随机数U和V,这两组数在(0,1]上均匀分布,用U和V生成两组独立的标准常态分布随机变量X和Y:

da107ff6dfa2cbb435ad5a4c00833147.png

1162dc9432d940a79114752e795c318c.png

方法三:由正态分布曲线图形得到的直观结果

图1 正态分布曲线

5a437a13307089d4aa9665f8915458b2.png

从上图可以看出&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值