【问题标题】:Pseudorandom Number Generation with Specific Non-Uniform Distributions具有特定非均匀分布的伪随机数生成
【发布时间】:2011-05-31 00:47:28
【问题描述】:
我正在编写一个程序来模拟各种随机游走(具有不同的分布)。在每个时间步,我需要从随机游走的分布中随机生成二维步距和角度。我希望有人可以检查我对如何生成这些随机数的理解。
据我了解,我可以按如下方式使用逆变换采样:
如果 f(x) 是具有非均匀分布的随机游走的 pdf,并且 y 是来自均匀分布的随机数。
然后,如果我们让 f(x) = y 并求解以找到 x,那么我们就有一个来自非均匀分布的随机数。
这是一个可行的解决方案吗?
【问题讨论】:
标签:
random
probability
distributed
【解决方案1】:
不完全是。需要反转的函数不是f(x),即pdf,而是F(x)=P(X
根据给定的分布,还有多种其他方法可以生成随机数。例如,如果 cdf F 难以计算或求逆,如果 f 易于计算,rejection sampling 可能是一个不错的选择。
【解决方案2】:
你很接近,但并不完全。每个概率密度函数 (pdf) 都有一个对应的累积密度函数 (cdf)。 CDF(x) 的一个重要属性是它们始终介于 0 和 1 之间。因为在 0 和 1 之间绘制随机数相对容易,我们可以使用它来逆向分布。因此,在您的问题中将单词 pdf 更改为 CDF 会使陈述正确。
为了在计算上有意义,您需要找到一个易于计算的 CDF 逆。一种方法是将多项式近似拟合到 CDF 并找到该函数的逆函数。有更先进的技术可以模拟杂乱分布的概率分布。有关详细信息,请参阅此book chapter。