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

2016-02-19 09:57 2 1 收藏

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

【 tulaoshi.com - 编程语言 】

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

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

#include stdlib.h
#include math.h

(本文来源于图老师网站,更多请访问https://www.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;
}

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

来源:https://www.tulaoshi.com/n/20160219/1592809.html

延伸阅读
  ANSI C++ 中的 Singleton 实现说难不难,说轻易也不轻易,很多人写 ANSI C++ 的 Singleton class 都有错误。这篇文章讨论怎样在 ANSI c++ 中写 Singleton class, 希望对大家有帮助。   《设计模式》中把 Singleton 写成返回指针: class Singleton{ public:     static Singleton* Instance(...
我想每个计算机专业的学生或多或少都接触过哈夫曼编码,数据结构中的老问题了。大体就是给出一些字符,和这些字符的出现频率,让你为这些字符设计一个二进制编码,要求频率最高的字符的编码最短。解决的方法是构造一棵哈夫曼树(二叉树),其基本思路是,每次从这些字符中挑出两个频率最低的,然后构造一个新的结点,使新结点的左右孩子指针分别...
一、背景 FlashGet的透明效果大家羡慕吧。传统的Windows应用程序想实现半透明效果,一般来说需要处理自己的窗口的WM_Paint消息窗口,很麻烦.现在好了,SetLayeredWindowAttributes是windows的新api,win2000以上才支持,它能使使窗体拥有透明效果.我在Google搜了下,介绍SetLayeredWindowAttributes的文章大多是delphi的和vb的。好不容易找...
在tc 3.0下调试通过,因为tc 3.0不支持bool 类型,所以程序中自定义了个枚举类型变量bool 假如在vc或者bc中运行,可以把这个bool类型注释掉. 贪吃蛇的核心算法时如何实现移动和吃掉食物. 没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色重绘这个节点. 然后把头指针所指的节点出队,并以游戏框架内部背景色重绘...
通常情况下,需要调用由用户提供的函数的算法是难以实现重用的。而实现重用的要害就在于寻找一种封装用户定义代码的有效途径。 引言 !-- frame contents -- !-- /frame contents -- “代码重用”是软件工程追求的神圣目标之一。采用面向对象(object-oriented, OO)的程序设计方法的一个主要方面也就是为了...

经验教程

31

收藏

57
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部