三九宝宝网宝宝百科宝宝知识

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

12月30日 编辑 39baobao.com

[请教如何用vfp来生成一个正态分布的随机数]1、产生符合正态分布的随机数:输入“= NORMINV(RAND(),mean,standard_dav)”,mean是均值,standard_dav是标准方差。 2、下拉的方式产生需要数目的随机数,全选,复制,再右键点“选...+阅读

•最简单的:rejection sampling,思路很简单,也很容易实现,但效率较差

•较复杂的:inverse CDF,直接利用累积分布函数(CDF)的反函数生成随机数,但计算中牵扯到比较复杂的误差函数erf(非初等函数)

•更好的:Box-Muller算法,在很长时间内都是生成正态分布随机数的"标准"算法。Box-Muller算法的特点是效率高,并且计算过程比较简单(只用到了初等函数)。参见:Box-Muller transform

•目前最好的(相较于其它实用算法):ziggurat算法,效率很高,很多现代的编程语言都使用了这一算法。ziggurat并不是人名,其含义是“金字形神塔”,不是埃及那个金字塔,而是古代苏美尔人建造的类金字塔结构的神坛:神坛由多层平台构成,每层平台都呈矩形、卵形或正方形,且自下而上面积逐渐减小。ziggurat算法实际上是一种改进的、包含查表操作的rejection sampling。

以下为关联文档:

急!!用c语言编写的产生正态随机数的源代码!一般有两种算法: 算法一产生12个(0,1)平均分布的随机函数,用大数定理可以模拟出正态分布。 算法二用到了数学中的雅可比变换,直接生成正态分布,但此算法在计算很大规模的数时 会出...

如何快速生成随机数 RSA算法可以采用32bit RSA算法 设A从2~(N-1) C=(A EXP D) mod N 满足如下条件: D是素数,N是两个素数(P,Q)之积, (D * E) mod ((P-1) * (Q-1))=1 因为:若 C=(A EXP D)mod N 有: A=(C EXP E)...

excel随机数发生器输出整数原发布者:x709902018 EXCEL中随机产生数据1、在“工具/加载宏”,勾选“分析工具库”,确定,即可在“工具”下拉菜单见到“数据分析/随机数发生器”工具。2、如果“加载宏”中没有...

EXCEL怎样产生125之间的6个不同随机数aaron8421 - 区域总裁 十三级 的方法行不通 因为用这个方法取到的后面的数字一定比前面大,所以得到的结果不随机,取到25的概率远大于取到1的概率。 707918886 - 首席执行官 十...

如何用VB生成随机数组并排序晕!你这是要整个程序还是思路啊? 我只能给你个思路! 第一步:界面! picturebox和三个command 第二步:程序! 1,用随机函数生成数组(就是两个随机函数生成数组,赋予某一个变量)哦,这是二维...

vb产生随机数然后数组排列然后平均数Option Explicit Private Sub Command1_Click() Dim i As Integer, j As Integer '定义循环变量 Dim rndNum(9) '定义数组 Dim avg As Single Dim sum As Integer Dim temp...

如何用rand产生在某范围之内的随机数可以直接使用RANDBETWEEN函数生成一定范围内的随机数。 可以使用RAND函结合其他函数来生成一定范围内的随机数。</ol> RANDBETWEEN【语法】 RANDBETWEEN(bottom,top) Bottom...

VBA生成不重复的随机数Option Explicit Private Sub CommandButton1_Click() Dim i As Integer, j As Integer, k As Integer, v As Integer Dim ish As Boolean Randomize For i = 1 To 100 For...

C语言随机数序列编程:用C语言程序编写。生成随机数序列//希望您你有帮助! #include <stdio.h> #include <time.h> int main() { int a[15] = {0}; int count = 0; srand(time(NULL)); while ( 1 ) { int r = rand()%15 + 1; if (+...

推荐阅读
图文推荐