正态随机分布 C++实现
2012-11-26 20:43
489 查看
转自:/article/5018312.html
高斯分布也称为正态分布(normal distribution)
常用的成熟的生成高斯分布随机数序列的方法由Marsaglia和Bray在1964年提出,C++版本如下:
高斯分布也称为正态分布(normal distribution)
常用的成熟的生成高斯分布随机数序列的方法由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; }
相关文章推荐
- C++实现正态随机分布的方法
- C++控制台实现随机生成路径迷宫游戏
- 基于Windows API的粒子随机运动C++实现
- 程序实现泊松随机分布
- 生成正态随机分布数
- 快速排序算法的C++实现及随机数组的产生方法
- C/C++实现快速排序和随机快速排序
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- C++用递归方式实现在对不更改随机数组的情况下查找最大值
- c/c++实现二进制文件随机写入
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- cocos2d-x 植物大战僵尸(3)随机太阳因子及利用C++多态实现金币递增
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- 直接插入排序的C++实现及随机数组的产生方法
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- C++实现随机生成迷宫地牢
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 习题2.8 随机数组的三种生成算法(补) 将bash的实现翻译成比较纯正的bash风格
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- C++利用vector实现随机选N项
- 气泡随机分布界面的实现