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

qq1213419992

qq1213419992

2016-02-19 09:57

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐C++实现正态随机分布的方法,赶紧看过来吧!

高斯分布也称为正态分布(normal distribution)

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

常用的成熟的生成高斯分布随机数序列的方法由Marsaglia和Bray在1964年提出,C++版本如下:
代码如下:

#include stdlib.h
#include math.h

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

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;
}

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
C++实现正态随机分布的方法

c/c++堆栈分布及其设置方法

编程语言 网络编程
c/c++堆栈分布及其设置方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

c++大数阶乘的实现方法

编程语言 网络编程
c++大数阶乘的实现方法

任意分布的随机数的产生方法—VC程序实现方法

C语言教程 C语言函数
任意分布的随机数的产生方法—VC程序实现方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C++读写Excel的实现方法详解

编程语言 网络编程
C++读写Excel的实现方法详解

基于Protobuf C++ serialize到char*的实现方法分析

编程语言 网络编程
基于Protobuf C++ serialize到char*的实现方法分析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何将Win7虚拟硬盘文件“藏”起来

如何将Win7虚拟硬盘文件“藏”起来

如何让win10永不黑屏

如何让win10永不黑屏
下拉加载更多内容 ↓