每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐C++实现正态随机分布的方法,赶紧看过来吧!
【 tulaoshi.com - 编程语言 】
高斯分布也称为正态分布(normal distribution)
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)常用的成熟的生成高斯分布随机数序列的方法由Marsaglia和Bray在1964年提出,C++版本如下:
代码如下:
#include stdlib.h
#include math.h
double gaussrand()
{
static double V1, V2, S;
static int phase = 0;
double X;
if ( phase == 0 ) {
do {
double U1 = (double)rand() / RAND_MAX;
double U2 = (double)rand() / RAND_MAX;
V1 = 2 * U1 - 1;
V2 = 2 * U2 - 1;
S = V1 * V1 + V2 * V2;
} while(S = 1 || S == 0);
X = V1 * sqrt(-2 * log(S) / S);
} else
X = V2 * sqrt(-2 * log(S) / S);
phase = 1 - phase;
return X;
}
来源:http://www.tulaoshi.com/n/20160219/1592809.html
看过《C++实现正态随机分布的方法》的人还看了以下文章 更多>>