@@ -492,7 +492,14 @@ def choices(self, population, weights=None, *, cum_weights=None, k=1):
492492 ## -------------------- real-valued distributions -------------------
493493
494494 def uniform (self , a , b ):
495- "Get a random number in the range [a, b) or [a, b] depending on rounding."
495+ """Get a random number in the range [a, b) or [a, b] depending on rounding.
496+
497+ The mean (expected value) and variance of the random variable are:
498+
499+ E[X] = (a + b) / 2
500+ Var[X] = (b - a) ** 2 / 12
501+
502+ """
496503 return a + (b - a ) * self .random ()
497504
498505 def triangular (self , low = 0.0 , high = 1.0 , mode = None ):
@@ -503,6 +510,11 @@ def triangular(self, low=0.0, high=1.0, mode=None):
503510
504511 http://en.wikipedia.org/wiki/Triangular_distribution
505512
513+ The mean (expected value) and variance of the random variable are:
514+
515+ E[X] = (low + high + mode) / 3
516+ Var[X] = (low**2 + high**2 + mode**2 - low*high - low*mode - high*mode) / 18
517+
506518 """
507519 u = self .random ()
508520 try :
@@ -593,12 +605,15 @@ def expovariate(self, lambd=1.0):
593605 positive infinity if lambd is positive, and from negative
594606 infinity to 0 if lambd is negative.
595607
596- """
597- # lambd: rate lambd = 1/mean
598- # ('lambda' is a Python reserved word)
608+ The mean (expected value) and variance of the random variable are:
609+
610+ E[X] = 1 / lambd
611+ Var[X] = 1 / lambd ** 2
599612
613+ """
600614 # we use 1-random() instead of random() to preclude the
601615 # possibility of taking the log of zero.
616+
602617 return - _log (1.0 - self .random ()) / lambd
603618
604619 def vonmisesvariate (self , mu , kappa ):
@@ -654,8 +669,12 @@ def gammavariate(self, alpha, beta):
654669 pdf(x) = --------------------------------------
655670 math.gamma(alpha) * beta ** alpha
656671
672+ The mean (expected value) and variance of the random variable are:
673+
674+ E[X] = alpha * beta
675+ Var[X] = alpha * beta ** 2
676+
657677 """
658- # alpha > 0, beta > 0, mean is alpha*beta, variance is alpha*beta**2
659678
660679 # Warning: a few older sources define the gamma distribution in terms
661680 # of alpha > -1.0
@@ -714,6 +733,11 @@ def betavariate(self, alpha, beta):
714733 Conditions on the parameters are alpha > 0 and beta > 0.
715734 Returned values range between 0 and 1.
716735
736+ The mean (expected value) and variance of the random variable are:
737+
738+ E[X] = alpha / (alpha + beta)
739+ Var[X] = alpha * beta / ((alpha + beta)**2 * (alpha + beta + 1))
740+
717741 """
718742 ## See
719743 ## http://mail.python.org/pipermail/python-bugs-list/2001-January/003752.html
@@ -766,6 +790,11 @@ def binomialvariate(self, n=1, p=0.5):
766790
767791 Returns an integer in the range: 0 <= X <= n
768792
793+ The mean (expected value) and variance of the random variable are:
794+
795+ E[X] = n * p
796+ Var[x] = n * p * (1 - p)
797+
769798 """
770799 # Error check inputs and handle edge cases
771800 if n < 0 :
0 commit comments