x L exp (-Lx). , [a, b], x [a, b] 1/ CDF, a b: a b (L exp ( -Lt) dt) = - (exp (-Lb) - exp (-La)).
, pdf x
L exp (-Lx))/(exp (-La) - exp (-Lb),
cdf x
a x [L exp (-Lt)/(exp (-La) - exp (-Lb)) dt]
= [-exp (-Lx) + exp (-La)]/[exp (-La) - exp (-Lb)] = u
:
exp (-Lx) = exp (-La) - u [exp (-La) - exp (-Lb)]
-Lx = -La + log (1 - u [1 - exp (-Lb)/exp (-La)])
x = a + (-1/L) log (1 - u [1 - exp (-Lb)/exp (-La)])
:
u = random.uniform(0,1)
return a + (-1/L)*math.log( 1 - u*(1 - math.exp(-L*b)/math.exp(-L*a)) )
: L a, math.exp(-L*a) 0, ZeroDivisionError.