开发者社区> 问答> 正文

c++高斯随机数

用c++编写一段程序,产生均值为0,方差为1的高斯随机数,求大神支招,急求

展开
收起
a123456678 2016-03-06 13:06:51 1970 0
1 条回答
写回答
取消 提交回答
  • #include 
    #include 
    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; 
    }
    2019-07-17 18:54:24
    赞同 展开评论 打赏
问答分类:
C++
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载