- 如何生成任意分布的随机变量
-
发布时间:2010-11-11 10:23:28
发布时间:2010-11-11 10:23:28
首先要生成一个平均分布的伪随机数a
最简单的一种算法是同余法:
y(n+1)=a*y(n) mod M
其中(M, a) 常见的一组取值为(2^31-1= 2147483647, 7^5=16807),可以
生成[0~M-1]上的随机数,通过线性变换可以得到0~1上的均匀随机数
如果你需要产生概率分布函数(PDF)为f(x)的一维随机变量,首先计算
它的概率累积函数(PCF) F(x)=Integrate[f(t),{t,0,x}],则F^-1(y)既为所需要
的随机变量。其中F^-1为PCF的反函数,y为一个[0~1]上的平均分布随
机变量。对于复杂的PDF无法求解反函数的,可以在资料上查找"变
换抽样法"。