指數分布的概率密度函數:y=lamda*exp(-lamda*x) x>=0
由此可以計算概率分布函數:y=1-exp(-lamda*x) x>=0
y是 X<x的概率,其取值在區間(0,1)內
首先,把y當作是在(0,1)區間的均勻分布的隨機變量。
然後,求y=1-exp(-lamda*x)的逆函數,x=-(1/lamda)*ln(1-y)
令z=1-y,顯然z也是(0,1)區間的均勻分布的隨機變量,於是就有x=-(1/lamda)*ln(z)。
z可以通過(double) rand() / RAND_MAX計算。原因是rand() 是隨機分布函數。
最終滿足指數分布的變量x,就可以通過x=-(1/lamda)*ln(z)計算。