手机
当前位置:查字典教程网 >编程开发 >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/C++中退出线程的四种解决方法

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

利用C++实现从std::string类型到bool型的转换

c语言swap(a,b)值交换的4种实现方法

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

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

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

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

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

精品推荐
分类导航