手机
当前位置:查字典教程网 >编程开发 >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++函数中return语句的使用方法

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

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

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

c/c++输出重定向的方法

使用map实现单词转换的实例分析

C++中队列的建立与操作详细解析

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

如何给随机数加密

精品推荐
分类导航