我试图用简单的非均匀概率生成一些随机数来模拟逼真的数据用于测试目的。我正在寻找一个接受mu和sigma作为参数并返回x的函数,其中x在一定范围内的可能性遵循标准的钟形曲线或其附近。它不需要超精确或者甚至是有效的。结果数据集不需要匹配我设置的精确mu和sigma。我只是在寻找一个相对简单的非均匀随机数发生器。将可能的返回值集合限制为整数将会很好。我在那里看到很多建议,但似乎没有哪一个适合这个简单的例子。用于在正态分布的数据集中生成随机值的示例算法?
3
A
回答
3
简而言之Box-Muller transform:
首先,从区间(0得到两个独立的,均匀随机数,1],给他们打电话U和V
然后你就可以得到两个独立的单位 - 从公式正常分布的随机数
X = sqrt(-2 * log(U)) * cos(2 * pi * V);
Y = sqrt(-2 * log(U)) * sin(2 * pi * V);
这给你IID的随机数为亩= 0,标准差= 1;设置标准差= S,由s乘以你随机数;设置亩=米,添加米到你的随机数
0
我的第一个想法是为什么你不能使用现有的库?我相信大多数语言已经有一个用于生成正态随机数的库。
如果由于某种原因您不能使用现有的库,那么由@ellisbben概述的方法对于编程来说相当简单。甚至更简单的(近似)算法只是总结12统一编号:
X = -6 ## We set X to be -mean value of 12 uniforms
for i in 1 to 12:
X += U
X的值是大致正常的。下图显示了与正态分布相比,该算法的10^5绘制。
相关问题
- 1. 在C中生成正态分布随机值的算法?
- 2. 用于生成均匀分布的随机位集的方法
- 3. Ruby中生成高斯(正态分布)随机数的代码
- 4. 如何在Prolog中生成正态分布随机数?
- 5. 基于python中的一个值生成“正态分布”数据
- 6. 在matlab中生成一个基于正态分布的随机数
- 7. 如何在matlab中生成跟随偏斜正态分布的随机数
- 8. 使用观测数据的形状生成随机对数正态分布
- 9. 具有正态分布的随机数生成器,用于objective-c
- 10. 从离散分布生成随机数的算法?
- 11. 用于实际随机/测试数据生成的数据集
- 12. 产生从用C数正态分布的随机数/ C++
- 13. 如何使用AMPL中的正态分布生成一个随机数矩阵?
- 14. Java - 实现产生正态分布的数字的随机向量生成器
- 15. 使用Boost生成基于Beta分布的随机数
- 16. 在Xorshift随机数生成算法
- 17. MethodError:无法匹配/(:: Int64,:: Array {Int64,1})当生成基于Julia中的正态分布的随机数
- 18. 生成随机数的正确方法
- 19. Array#示例随机数生成器
- 20. 如何从Matlab中截断对数正态分布生成随机数?
- 21. Python算法从正数据集中获取随机化的负数据集
- 22. 在Matlab中的正态分布的随机数
- 23. 用于链表分配的随机数生成器方法
- 24. 用于生成随机字母数字值的SOAP UI方法
- 25. TI-84 +随机数生成算法
- 26. 用R中的双变量伽马分布生成随机数
- 27. 从数据库生成随机集合
- 28. 随机生成方程的算法
- 29. 将正态分布的随机值的新字段添加到数据框
- 30. 正确生成随机数
有几个存在的问题是回答这个...我会运行一个或多个下来不久。 [在C/C++中生成正态分布的随机数](http://stackoverflow.com/questions/2325472/),[将均匀分布转换为正态分布](http://stackoverflow.com/questions/75677 /),[C++:生成高斯分布](http://stackoverflow.com/questions/1109446/) – dmckee 2010-10-13 02:18:51