1997-04-03 18:41:49 -04:00
|
|
|
\section{Standard Module \sectcode{random}}
|
1997-07-17 13:34:52 -03:00
|
|
|
\label{module-random}
|
1997-04-03 18:41:49 -04:00
|
|
|
\stmodindex{random}
|
|
|
|
|
|
|
|
This module implements pseudo-random number generators for various
|
|
|
|
distributions: on the real line, there are functions to compute normal
|
|
|
|
or Gaussian, lognormal, negative exponential, gamma, and beta
|
|
|
|
distributions. For generating distribution of angles, the circular
|
|
|
|
uniform and von Mises distributions are available.
|
|
|
|
|
|
|
|
The module exports the following functions, which are exactly
|
1998-03-08 04:13:53 -04:00
|
|
|
equivalent to those in the \module{whrandom} module:
|
|
|
|
\function{choice()}, \function{randint()}, \function{random()} and
|
|
|
|
\function{uniform()}. See the documentation for the \module{whrandom}
|
|
|
|
module for these functions.
|
1997-04-03 18:41:49 -04:00
|
|
|
|
1998-03-08 04:13:53 -04:00
|
|
|
The following functions specific to the \module{random} module are also
|
1997-04-03 18:41:49 -04:00
|
|
|
defined, and all return real values. Function parameters are named
|
|
|
|
after the corresponding variables in the distribution's equation, as
|
|
|
|
used in common mathematical practice; most of these equations can be
|
|
|
|
found in any statistics text.
|
|
|
|
|
1998-02-13 02:58:54 -04:00
|
|
|
\setindexsubitem{(in module random)}
|
1998-03-08 04:13:53 -04:00
|
|
|
\begin{funcdesc}{betavariate}{alpha, beta}
|
|
|
|
Beta distribution. Conditions on the parameters are
|
|
|
|
\code{\var{alpha}>-1} and \code{\var{beta}>-1}.
|
1997-04-03 18:41:49 -04:00
|
|
|
Returned values will range between 0 and 1.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-08 04:13:53 -04:00
|
|
|
\begin{funcdesc}{cunifvariate}{mean, arc}
|
1997-04-03 18:41:49 -04:00
|
|
|
Circular uniform distribution. \var{mean} is the mean angle, and
|
|
|
|
\var{arc} is the range of the distribution, centered around the mean
|
|
|
|
angle. Both values must be expressed in radians, and can range
|
|
|
|
between 0 and \code{pi}. Returned values will range between
|
1998-03-08 04:13:53 -04:00
|
|
|
\code{\var{mean} - \var{arc}/2} and \code{\var{mean} + \var{arc}/2}.
|
1997-04-03 18:41:49 -04:00
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
\begin{funcdesc}{expovariate}{lambd}
|
1998-03-08 04:13:53 -04:00
|
|
|
Exponential distribution. \var{lambd} is 1.0 divided by the desired
|
|
|
|
mean. (The parameter would be called ``lambda'', but that is a
|
|
|
|
reserved word in Python.) Returned values will range from 0 to
|
|
|
|
positive infinity.
|
1997-04-03 18:41:49 -04:00
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-08 04:13:53 -04:00
|
|
|
\begin{funcdesc}{gamma}{alpha, beta}
|
|
|
|
Gamma distribution. (\emph{Not} the gamma function!) Conditions on
|
|
|
|
the parameters are \code{\var{alpha}>-1} and \code{\var{beta}>0}.
|
1997-04-03 18:41:49 -04:00
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-08 04:13:53 -04:00
|
|
|
\begin{funcdesc}{gauss}{mu, sigma}
|
1997-04-03 18:41:49 -04:00
|
|
|
Gaussian distribution. \var{mu} is the mean, and \var{sigma} is the
|
|
|
|
standard deviation. This is slightly faster than the
|
1998-03-08 04:13:53 -04:00
|
|
|
\function{normalvariate()} function defined below.
|
1997-04-03 18:41:49 -04:00
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-08 04:13:53 -04:00
|
|
|
\begin{funcdesc}{lognormvariate}{mu, sigma}
|
1997-04-03 18:41:49 -04:00
|
|
|
Log normal distribution. If you take the natural logarithm of this
|
|
|
|
distribution, you'll get a normal distribution with mean \var{mu} and
|
1998-03-08 04:13:53 -04:00
|
|
|
standard deviation \var{sigma}. \var{mu} can have any value, and \var{sigma}
|
1997-04-03 18:41:49 -04:00
|
|
|
must be greater than zero.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-08 04:13:53 -04:00
|
|
|
\begin{funcdesc}{normalvariate}{mu, sigma}
|
1997-04-03 18:41:49 -04:00
|
|
|
Normal distribution. \var{mu} is the mean, and \var{sigma} is the
|
|
|
|
standard deviation.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-08 04:13:53 -04:00
|
|
|
\begin{funcdesc}{vonmisesvariate}{mu, kappa}
|
1997-04-03 18:41:49 -04:00
|
|
|
\var{mu} is the mean angle, expressed in radians between 0 and pi,
|
|
|
|
and \var{kappa} is the concentration parameter, which must be greater
|
|
|
|
then or equal to zero. If \var{kappa} is equal to zero, this
|
|
|
|
distribution reduces to a uniform random angle over the range 0 to
|
1998-03-08 04:13:53 -04:00
|
|
|
$2\pi$.
|
1997-04-03 18:41:49 -04:00
|
|
|
\end{funcdesc}
|
1997-07-17 13:34:52 -03:00
|
|
|
|
1997-12-30 13:38:05 -04:00
|
|
|
\begin{funcdesc}{paretovariate}{alpha}
|
|
|
|
Pareto distribution. \var{alpha} is the shape parameter.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
\begin{funcdesc}{weibullvariate}{alpha, beta}
|
1998-03-08 04:13:53 -04:00
|
|
|
Weibull distribution. \var{alpha} is the scale parameter and
|
1997-12-30 13:38:05 -04:00
|
|
|
\var{beta} is the shape parameter.
|
|
|
|
\end{funcdesc}
|
1997-07-17 13:34:52 -03:00
|
|
|
|
|
|
|
\begin{seealso}
|
|
|
|
\seemodule{whrandom}{the standard Python random number generator}
|
|
|
|
\end{seealso}
|