正态随机分布 C++实现
生活随笔
收集整理的这篇文章主要介绍了
正态随机分布 C++实现
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
高斯分布也称为正态分布(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);} elseX = V2 * sqrt(-2 * log(S) / S);phase = 1 - phase;return X; }
本文转自cococo点点博客园博客,原文链接:http://www.cnblogs.com/coder2012/archive/2012/11/26/2789735.html,如需转载请自行联系原作者
总结
以上是生活随笔为你收集整理的正态随机分布 C++实现的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: JavaScript原型彻底理解2---
- 下一篇: C++/CLI思辨录之代理构造函数