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

Qt实现图片移动实例(图文教程)

C++可变参数的实现方法

浅析C/C++变量在内存中的分布

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

C语言实现静态链表的方法

C中实现矩阵乘法的一种高效的方法

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

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

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

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

精品推荐
分类导航