一种用于生成指数分布和正态分布的伪随机数的改进Ziggurat算法
摘要:Ziggurat算法:一种用于生成常见统计分布的伪随机数的快速拒绝抽样方法。这个算法将一个分布分成一个个矩形层,这些层相互堆叠在一起(类似于一个金字塔),包含了所需的分布。然后通过拒绝采样在这些矩形层中随机取值。这个实现将层分成两种类型:一种是完全落在分布下方的占多数的层,可以通过非常快速的采样而不需要拒绝测试,另一种是涵盖分布边缘的一些额外层,需要进行拒绝测试。与已有的C语言实现相比,该方法可以在指数分布和正态分布的PRN生成方面提供65%和82%的加速。当将算法扩展到Python和MATLAB/OCTAVE编程环境时,可以获得更大的加速效果。
作者:Christopher D McFarland
论文ID:1403.6870
分类:Mathematical Software
分类简称:cs.MS
提交时间:2014-04-22