This previous SO question考虑将均匀分布转换为正态分布。
对于蒙特卡罗模拟,我不仅需要正态(高斯),而且需要一些计算高效的方法来从"fat-tailed"或heavy-tailed分布生成大量样本,使用给定的(64位或双精度)均匀RNG作为输入。这些分布的例子包括:对数正态分布、帕累托分布、学生分布和柯西分布。
使用逆CDF是可以接受的,给出了根据需要计算逆CDF的计算效率的方法。
该标记用于独立于语言的算法,但所需的实现是用于基本的过程化编程语言(C、Basic、过程化Swift、Python、et.al。)
发布于 2018-12-30 05:36:16
柯西随机数可以表示为:
scale * tan(pi * (RNDU01OneExc()-0.5)) + mu其中RNDU01OneExc()是[0,1]中的随机数,mu和scale分别是偏移量和比例。
对数正态随机数可以表示为exp(Normal(mu, sigma)),其中Normal(mu, sigma)是具有平均mu和标准差sigma的正态分布随机数。
关于随机数生成和采样的my article中提到了这些分布和其他类型的分布。
https://stackoverflow.com/questions/53972701
复制相似问题