[Python-Dev] [Python-checkins] r61796 - in python/trunk: Doc/library/random.rst Lib/random.py Lib/test/test_random.py Misc/NEWS

Nick Coghlan ncoghlan at gmail.com
Sun Mar 23 15:56:03 CET 2008


> +## -------------------- triangular --------------------
> +
> + def triangular(self, low, high, mode):
> + """Triangular distribution.
> +
> + Continuous distribution bounded by given lower and upper limits,
> + and having a given mode value in-between.
> +
> + http://en.wikipedia.org/wiki/Triangular_distribution
> +
> + """
> + u = self.random()
> + c = (mode - low) / (high - low)
> + if u > c:
> + u = 1 - u
> + c = 1 - c
> + low, high = high, low
> + return low + (high - low) * (u * c) ** 0.5
> +

Would it be worth having default values on the parameters for this?
 def triangular(self, low=0, high=1, mode=None):
 u = self.random()
 if mode is None:
 c = 0.5
 else:
 c = (mode - low) / (high - low)
 if u > c:
 u = 1 - u
 c = 1 - c
 low, high = high, low
 return low + (high - low) * (u * c) ** 0.5
At the very least, supporting mode=None would be convenient when you 
want a symmetric triangular distribution - having to calculate the 
median, pass it in as the mode, then have the function reverse that to 
get 0.5 seems a little wasteful.
Cheers,
Nick.
-- 
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
 http://www.boredomandlaziness.org


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /