diff options
author | Raymond Hettinger <python@rcn.com> | 2008-03-23 19:37:53 +0000 |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2008-03-23 19:37:53 +0000 |
commit | a749a8404b374012e011598ce5b574c290e2041e (patch) | |
tree | ebf8343de832c9833b5f50ced9e4f0a5d49ad073 /Lib/random.py | |
parent | 59e47ff6ed9cea08f59aed81bc7b62d5fc80e243 (diff) | |
download | cpython-a749a8404b374012e011598ce5b574c290e2041e.tar.gz |
Adopt Nick's suggestion for useful default arguments.
Clean-up floating point issues by adding true division and float constants.
Diffstat (limited to 'Lib/random.py')
-rw-r--r-- | Lib/random.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Lib/random.py b/Lib/random.py index 13125e2af2..bd8679fea9 100644 --- a/Lib/random.py +++ b/Lib/random.py @@ -39,6 +39,7 @@ General notes on the underlying Mersenne Twister core generator: """ +from __future__ import division from warnings import warn as _warn from types import MethodType as _MethodType, BuiltinMethodType as _BuiltinMethodType from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil @@ -353,7 +354,7 @@ class Random(_random.Random): ## -------------------- triangular -------------------- - def triangular(self, low, high, mode): + def triangular(self, low=0.0, high=1.0, mode=None): """Triangular distribution. Continuous distribution bounded by given lower and upper limits, @@ -363,10 +364,10 @@ class Random(_random.Random): """ u = self.random() - c = (mode - low) / (high - low) + c = 0.5 if mode is None else (mode - low) / (high - low) if u > c: - u = 1 - u - c = 1 - c + u = 1.0 - u + c = 1.0 - c low, high = high, low return low + (high - low) * (u * c) ** 0.5 |