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.