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

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

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

【 tulaoshi.com - 编程语言 】

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

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

常用的成熟的生成高斯分布随机数序列的方法由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);
    } else
        X = V2 * sqrt(-2 * log(S) / S);

    phase = 1 - phase;

    return X;
}

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

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

延伸阅读
标签: PHP
  Author: Mitchell Harper 翻译    :Kefeng Nie (kefeng_nie@163.com) Date   :2002-10-15   一,简介   如果你对Unix/Linux有所了解的话,你应该知道他们大都自带了C和C++的编译器,分别是GCC和G++。Unix在程序安装及Make等许多地方使用到了这些编译器。利用一些控制台命令,C++和PHP, 我将...
摘要: 本文介绍了工具提示的原理及用法,并给出其在对话框和框架窗口中的两种不同的实现方法。 关键词: 工具提示 对话框 框架窗口 Visual C++   1.前言 工具提示是一个小的弹出窗口,在窗口中显示一行文本用以描述工具的用途或其他信息。工具提示在多数情况下是隐藏的,只有当鼠标的光标放在工具上并停留大约500毫秒时才出现在...
在tc 3.0下调试通过,因为tc 3.0不支持bool 类型,所以程序中自定义了个枚举类型变量bool 假如在vc或者bc中运行,可以把这个bool类型注释掉. 贪吃蛇的核心算法时如何实现移动和吃掉食物. 没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色重绘这个节点. 然后把头指针所指的节点出队,并以游戏框架内部背景色重绘...
通常情况下,需要调用由用户提供的函数的算法是难以实现重用的。而实现重用的要害就在于寻找一种封装用户定义代码的有效途径。 引言 !-- frame contents -- !-- /frame contents -- “代码重用”是软件工程追求的神圣目标之一。采用面向对象(object-oriented, OO)的程序设计方法的一个主要方面也就是为了...
在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的技术。 下面用一个最简单的例子来说明。 类ClxEXP是我们要导出的类,其中有一个私有成员变量是C...

经验教程

146

收藏

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