源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++实现正态随机分布的方法

  • 时间:2021-11-17 20:21 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++实现正态随机分布的方法
[b]高斯分布也称为正态分布(normal distribution)[/b] 常用的成熟的生成高斯分布随机数序列的方法由Marsaglia和Bray在1964年提出,C++版本如下:
[u]复制代码[/u] 代码如下:
#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; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部