C语言实现高斯分布的原理——Box-Muller 方法
来源:互联网 发布:数据挖掘的分析方法 编辑:程序博客网 时间:2024/05/18 00:23
在网上下载了现成的实现高斯分布的代码,但是在看代码时却不明白其产生的公式。
x[i]=sqrt(-2*log(x1[i]))*cos(x2[i]*M_PI);
本来按照设想,计算高斯分布应该是按照高斯分布的概率密度函数来,但是上述公式确实看得晕。
后来才发现上述方法称作Box-Muller 方法。详细介绍见下面转载百度百科的解释:
转自:http://baike.baidu.com/view/1710258.htm
box-muller
Box-Muller 是产生随机数的一种方法。Box-Muller 算法隐含的原理非常深奥,但结果却是相当简单。 如果在 (0,1] 值域内有两个一致的随机数字 U1 和 U2, 可以使用以下两个等式中的任一个算出一个正态分布的随机数字 Z: Z = R * cos( θ ) 或 Z = R * sin( θ ) 其中, R = sqrt(-2 * ln(U2)) θ = 2 * π * U1 正态值 Z 有一个等于 0 的平均值和一个等于 1 的标准偏差,可使用以下等式将 Z 映射到一个平均值为 m、标准偏差为 sd 的统计量 X: X = m + (Z * sd)
- C语言实现高斯分布的原理——Box-Muller 方法
- 用C语言实现均匀分布,瑞利分布,莱斯分布,高斯分布的分布函数
- 用C语言实现瑞利分布,莱斯分布,高斯分布的分布函数
- 随机采样系列3:Box-Muller方法产生正太分布
- 简单几行C语言代码实现高斯分布
- C语言实现正态分布或高斯分布
- 基于Box–Muller变换的正态随机数生成方法
- C C++ 高斯分布
- 3*3高斯,BOX,拉普拉斯滤波的实现
- Muller-box(转自百度百科)
- 高斯分布的理解
- opencv中的GMM(混合高斯分布)算法原理及C++实现(BackgroundSubtractorMOG)
- C/C++生成高斯分布随机数
- c语言中-x的实现原理
- 相似图片搜索的原理和实现——颜色分布法
- c语言共用体的内存分布
- C语言程序的内存分布
- 任意分布的随机数的产生方法—VC程序实现方法
- ubuntu 10.04安装xbmc 媒体中心sudo apt-get install xbmc
- 开始: Android开发环境搭建全程演示(jdk+eclipse+android sdk)
- 汉语在结构形式上有独特优势:汉语的言和语均有明显的形式区分标记
- Linux入门笔记之一:系统分区及挂载点
- C++结构和类
- C语言实现高斯分布的原理——Box-Muller 方法
- 怎样使用Eclipse来开发Android源码
- 关于c++ map问题
- linux 下MD5的C语言实现
- Android 列表之分组ListView
- CakePHP: 什么时候需要去创建一个Plugin
- Comparison of programming languages
- ——XML文档(一)
- Android腾讯微薄客户端案例