1. 程式人生 > >服從指數分佈的生成器

服從指數分佈的生成器

  指數分佈的概率密度函式     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)計算。