导航:首页 > 源码编译 > 计算机基于正态分布算法

计算机基于正态分布算法

发布时间:2023-06-12 18:55:28

A. 如何产生正态分布的随机数

•最简单的:rejection sampling,思路很简单,也很容易实现,但效率较差
•较复杂的:inverse CDF,直接利用累积分布函数(CDF)的反函数生成随机数,但计算中牵扯到比较复杂的误差函数erf(非初等函数)
•更好的:Box-Muller算法,在很长时间内都是生成正态分布随机数的"标准"算法。Box-Muller算法的特点是效率高,并且计算过程比较简单(只用到了初等函数)。参见:Box-Muller transform
•目前最好的(相较于其它实用算法):ziggurat算法,效率很高,很多现代的编程语言都使用了这一算法。ziggurat并不是人名,其含义是“金字形神塔”,不是埃及那个金字塔,而是古代苏美尔人建造的类金字塔结构的神坛:神坛由多层平台构成,每层平台都呈矩形、卵形或正方形,且自下而上面积逐渐减小。ziggurat算法实际上是一种改进的、包含查表操作的rejection sampling。

B. 如何产生正态分布的随机数

这个要看你的具体需求,有几种方法可以推荐。


首先最简单:rejection sampling,思维方式非常简单,容易实现,但效率很差更复杂:逆提供,直接使用累积分布函数的逆函数(CDF)生成随机数,但涉及更复杂的计算误差函数的小块土地(非初等函数)更好:盒子-穆勒算法,生成在很长一段时间的正态分布随机数的“标准”算法。


所以不管是那种算法,都需要你去花些功夫来了解一下,是不是适合自己,是不是适合去解决现在自己正在面临的问题,毕竟别的经验都只是一些参考。在自己的实践中逐步去发现自己的问题,找到最适合自己的很重要

阅读全文

与计算机基于正态分布算法相关的资料

热点内容
直接卡密登陆短信测压系统的源码 浏览:960
课经pdf 浏览:299
c动态编程 浏览:34
浣熊PDF 浏览:770
grep命令表达式 浏览:108
程序员半年了找不到工作怎么办 浏览:961
深圳6k程序员 浏览:520
刷脸支付oem需要源码吗 浏览:166
如何在线压缩动态图片 浏览:113
vb字母表加密 浏览:613
红帽磁盘命令 浏览:868
cmd命令大全ip地址 浏览:14
服务器被攻击什么意思 浏览:73
看去哪个app 浏览:163
埃微手环用什么app 浏览:567
培训需要编程基础吗 浏览:338
程序员写论文需要什么条件 浏览:600
三菱电机压缩机待遇 浏览:889
android电源关机 浏览:521
重新定义程序员教程 浏览:541