import math
import random
def cauchy(location, scale):
# Start with a uniform random sample from the open interval (0, 1).
# But random() returns a sample from the half-open interval [0, 1).
# In the unlikely event that random() returns 0, try again.
p = 0.0
while p == 0.0:
p = random.random()
return location + scale*math.tan(math.pi*(p - 0.5))
This code is in the public domain. Do whatever you want to with it, no strings attached.
See also: