手机
当前位置:查字典教程网 >编程开发 >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++实现正态随机分布的方法】相关文章:

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

C++读写.mat文件的方法

C/C++中退出线程的四种解决方法

C++算法之海量数据处理方法的总结分析

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

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

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

C++中指向结构体变量的指针

C语言 实现N阶乘的程序代码

C语言实现逆波兰式实例

精品推荐
分类导航