正态随机分布 C++实现
生活随笔
收集整理的這篇文章主要介紹了
正态随机分布 C++实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
高斯分布也稱為正態(tài)分布(normal distribution)
常用的成熟的生成高斯分布隨機(jī)數(shù)序列的方法由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);} elseX = V2 * sqrt(-2 * log(S) / S);phase = 1 - phase;return X; }
?本文轉(zhuǎn)自cococo點(diǎn)點(diǎn)博客園博客,原文鏈接:http://www.cnblogs.com/coder2012/archive/2012/11/26/2789735.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的正态随机分布 C++实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript原型彻底理解2---
- 下一篇: [编程技巧] 巧用CPU缓存优化代码:数