摘要
假定X与Y是服从密度函数 f 和 g 的随机变量,存在一个常数c使
f ( t ) / g ( t ) ≤ c f(t)/g(t)\le c f(t)/g(t)≤c
对所有 t 都满足 f ( t ) > 0 f(t)>0 f(t)>0,则接受拒绝法可以用来生成X的随机样本。
注:生成服从某分布的伪随机数,就是生成该分布的样本。有时写成随机数,有时写成样本。
正文
目标:生成服从 f ( x ) f(x) f(x)的随机样本X
步骤:
- 找到一个随机变量Y,该随机变量的密度函数 为g,且 满足 f ( y ) / g ( y ) ≤ c f(y)/g(y)\le c f(y)/g(y)≤c,同时对所有y,都满足 f ( y ) > 0 f(y)>0 f(y)>0,生成Y的随机样本。
- 对Y的每一个随机数要求:
a. 生成的随机样本y来自于服从密度函数为g的分布 - 生成随机样本u来自于0-1均匀分布
- 如果 u < f ( y ) / ( c g ( y ) ) u<f(y)/(cg(y)) u<f(y)/(cg(y)),则接受y并传递给x,令 x = y x = y x=y, 否则,拒绝y,重复操作2(a).
第二步c的原理:
P ( a c c e p t ∣ Y ) = P ( U < f ( Y ) c g ( Y ) ∣ Y ) = f ( Y ) c g ( Y ) P(accept|Y)=P(U<\frac{f(Y)}{cg(Y)}|Y)=\frac{f(Y)}{cg(Y)} P(accept∣Y)=P(U<c