我想生成100个正态分布的随机数(μ= 10,σ= 7),然后绘制这些数字的数量图。
如何在Excel 2010中生成具有特定分布的随机数?
还有一个问题:
例如,当我生成带有RANDBETWEEN(Bottom,Top)
的20个随机数时,每次重新计算工作表时数字都会改变。我该如何防止这种情况发生?
答案 0 :(得分:88)
=NORMINV(RAND(),10,7)
要保持随机值集不变,请选择所有值,复制它们,然后将值(特殊)粘贴回相同的范围。
样本输出(A列),使用此公式生成的500个数字:
答案 1 :(得分:5)
如果你有excel 2007,你可以使用
=NORMSINV(RAND())*SD+MEAN
因为2010年有关于excel功能的重大变化
答案 2 :(得分:3)
正如@osknows在上面的评论中所说的那样(而不是一个答案,这就是为什么我要添加这个),Analysis Pack有随机数生成来生成一组数字。一个很好的摘要链接在http://www.bettersolutions.com/excel/EUN147/YI231420881.htm。
答案 3 :(得分:2)
Rand()确实生成0到1之间随机数的均匀分布,但是norminv(或norm.inv)函数将统一分布式Rand()作为输入来生成正态分布的样本集。
答案 4 :(得分:1)
在random numbers上关于使用抽样技术的维基百科文章中获取战利品。您可以通过插入this一个
找到正态分布的等式
(维基百科方程式)
关于第二个问题,请转到圈子Office图标下的选项,转到公式,然后将计算更改为“手动”。这将保持您的工作表,而不是每次重新计算公式。
答案 5 :(得分:1)
关于重新计算:
通过将automatic recalculation
调整为manual recalculate
,您可以在每次进行调整时保持随机值的设置不变。 (重新)计算仅在按F9时完成。或者换班F9。
请参阅此链接(虽然对于较旧的excel版本而不是当前的2013版本)有关它的一些信息:https://support.office.com/en-us/article/Change-formula-recalculation-iteration-or-precision-73fc7dac-91cf-4d36-86e8-67124f6bcce4。
答案 6 :(得分:0)
另一种有趣的方法是使用 Box-Muller 方法。这使您可以使用 0 和 1 之间的两个均匀随机分布生成均值为 0 且标准差 σ(或方差 σ2)为 1 的正态分布。然后您可以采用此 Norm(0,1 ) 分布并将其缩放到您想要的任何均值和标准差。
这里是正态(0, 1)分布的excel公式:
=SQRT(-2*LN( RAND()))*COS(2 * PI()*RAND())
然后使用此公式将正态分布缩放为均值 10 和标准差 7:
范数(µ=b, σ=a) = a*范数(µ=0, σ2=1) + b
这将使 Excel 中的等式:
=7* SQRT(-2*LN( RAND()))*COS(2 * PI()*RAND()) + 10
您可以在 en.Wikipedia
上阅读有关此 Box-Muller 方程背后的数学的更多信息请注意,此等式仅适用于使用弧度计算余弦函数的情况。
答案 7 :(得分:-3)
生成的数字
=NORMINV(RAND(),10,7)
是统一分布的。如果你想要正常分配数字,我必须编写一个函数。