欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

正态随机分布 C++实现

发布时间:2025/6/15 c/c++ 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 正态随机分布 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++实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。