手机
当前位置:查字典教程网 >编程开发 >C语言 >C++实现正态随机分布的方法
C++实现正态随机分布的方法
摘要:高斯分布也称为正态分布(normaldistribution)常用的成熟的生成高斯分布随机数序列的方法由Marsaglia和Bray在196...

高斯分布也称为正态分布(normal distribution)

常用的成熟的生成高斯分布随机数序列的方法由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;

}

【C++实现正态随机分布的方法】相关文章:

C++中的异或运算符^的使用方法

基于Protobuf C++ serialize到char*的实现方法分析

c语言连接mysql数据库的实现方法

求子数组最大和的解决方法详解

C/C++指针和取地址的方法

GCC 编译使用动态链接库和静态链接库的方法

C++十六进制宏的用法详解

如何给随机数加密

C++中this指针的用法及介绍

C++输出斐波那契数列的两种实现方法

精品推荐
分类导航