Commit 5f0decf0 authored by Fred Drake's avatar Fred Drake

Clean up the docs for the "random" module according to comments from Tim

Peters.

This closes SF bug #125919.
parent f228fd10
...@@ -13,79 +13,102 @@ distributions. For generating distribution of angles, the circular ...@@ -13,79 +13,102 @@ distributions. For generating distribution of angles, the circular
uniform and von Mises distributions are available. uniform and von Mises distributions are available.
The \module{random} module supports the \emph{Random Number \begin{funcdesc}{choice}{seq}
Generator} interface, described in section \ref{rng-objects}. This Chooses a random element from the non-empty sequence \var{seq} and
interface of the module, as well as the distribution-specific returns it.
functions described below, all use the pseudo-random generator \end{funcdesc}
provided by the \refmodule{whrandom} module.
\begin{funcdesc}{randint}{a, b}
\deprecated{2.0}{Use \function{randrange()} instead.}
Returns a random integer \var{N} such that
\code{\var{a} <= \var{N} <= \var{b}}.
\end{funcdesc}
\begin{funcdesc}{random}{}
Returns the next random floating point number in the range [0.0,
1.0).
\end{funcdesc}
\begin{funcdesc}{randrange}{\optional{start,} stop\optional{, step}}
Return a randomly selected element from \code{range(\var{start},
\var{stop}, \var{step})}. This is equivalent to
\code{choice(range(\var{start}, \var{stop}, \var{step}))}.
\versionadded{1.5.2}
\end{funcdesc}
\begin{funcdesc}{uniform}{a, b}
Returns a random real number \var{N} such that
\code{\var{a} <= \var{N} < \var{b}}.
\end{funcdesc}
The following functions are defined to support specific distributions, The following functions are defined to support specific distributions,
and all return real values. Function parameters are named after the and all return real values. Function parameters are named after the
corresponding variables in the distribution's equation, as used in corresponding variables in the distribution's equation, as used in
common mathematical practice; most of these equations can be found in common mathematical practice; most of these equations can be found in
any statistics text. These are expected to become part of the Random any statistics text.
Number Generator interface in a future release.
\begin{funcdesc}{betavariate}{alpha, beta} \begin{funcdesc}{betavariate}{alpha, beta}
Beta distribution. Conditions on the parameters are Beta distribution. Conditions on the parameters are
\code{\var{alpha} > -1} and \code{\var{beta} > -1}. \code{\var{alpha} > -1} and \code{\var{beta} > -1}.
Returned values range between 0 and 1. Returned values range between 0 and 1.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{cunifvariate}{mean, arc} \begin{funcdesc}{cunifvariate}{mean, arc}
Circular uniform distribution. \var{mean} is the mean angle, and Circular uniform distribution. \var{mean} is the mean angle, and
\var{arc} is the range of the distribution, centered around the mean \var{arc} is the range of the distribution, centered around the mean
angle. Both values must be expressed in radians, and can range angle. Both values must be expressed in radians, and can range
between 0 and \emph{pi}. Returned values will range between between 0 and \emph{pi}. Returned values will range between
\code{\var{mean} - \var{arc}/2} and \code{\var{mean} + \var{arc}/2}. \code{\var{mean} - \var{arc}/2} and \code{\var{mean} +
\var{arc}/2}.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{expovariate}{lambd} \begin{funcdesc}{expovariate}{lambd}
Exponential distribution. \var{lambd} is 1.0 divided by the desired Exponential distribution. \var{lambd} is 1.0 divided by the desired
mean. (The parameter would be called ``lambda'', but that is a mean. (The parameter would be called ``lambda'', but that is a
reserved word in Python.) Returned values will range from 0 to reserved word in Python.) Returned values will range from 0 to
positive infinity. positive infinity.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{gamma}{alpha, beta} \begin{funcdesc}{gamma}{alpha, beta}
Gamma distribution. (\emph{Not} the gamma function!) Conditions on Gamma distribution. (\emph{Not} the gamma function!) Conditions on
the parameters are \code{\var{alpha} > -1} and \code{\var{beta} > 0}. the parameters are \code{\var{alpha} > -1} and \code{\var{beta} > 0}.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{gauss}{mu, sigma} \begin{funcdesc}{gauss}{mu, sigma}
Gaussian distribution. \var{mu} is the mean, and \var{sigma} is the Gaussian distribution. \var{mu} is the mean, and \var{sigma} is the
standard deviation. This is slightly faster than the standard deviation. This is slightly faster than the
\function{normalvariate()} function defined below. \function{normalvariate()} function defined below.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{lognormvariate}{mu, sigma} \begin{funcdesc}{lognormvariate}{mu, sigma}
Log normal distribution. If you take the natural logarithm of this Log normal distribution. If you take the natural logarithm of this
distribution, you'll get a normal distribution with mean \var{mu} and distribution, you'll get a normal distribution with mean \var{mu}
standard deviation \var{sigma}. \var{mu} can have any value, and and standard deviation \var{sigma}. \var{mu} can have any value,
\var{sigma} must be greater than zero. and \var{sigma} must be greater than zero.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{normalvariate}{mu, sigma} \begin{funcdesc}{normalvariate}{mu, sigma}
Normal distribution. \var{mu} is the mean, and \var{sigma} is the Normal distribution. \var{mu} is the mean, and \var{sigma} is the
standard deviation. standard deviation.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{vonmisesvariate}{mu, kappa} \begin{funcdesc}{vonmisesvariate}{mu, kappa}
\var{mu} is the mean angle, expressed in radians between 0 and 2*\emph{pi}, \var{mu} is the mean angle, expressed in radians between 0 and
and \var{kappa} is the concentration parameter, which must be greater 2*\emph{pi}, and \var{kappa} is the concentration parameter, which
than or equal to zero. If \var{kappa} is equal to zero, this must be greater than or equal to zero. If \var{kappa} is equal to
distribution reduces to a uniform random angle over the range 0 to zero, this distribution reduces to a uniform random angle over the
2*\emph{pi}. range 0 to 2*\emph{pi}.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{paretovariate}{alpha} \begin{funcdesc}{paretovariate}{alpha}
Pareto distribution. \var{alpha} is the shape parameter. Pareto distribution. \var{alpha} is the shape parameter.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{weibullvariate}{alpha, beta} \begin{funcdesc}{weibullvariate}{alpha, beta}
Weibull distribution. \var{alpha} is the scale parameter and Weibull distribution. \var{alpha} is the scale parameter and
\var{beta} is the shape parameter. \var{beta} is the shape parameter.
\end{funcdesc} \end{funcdesc}
...@@ -93,61 +116,19 @@ This function does not represent a specific distribution, but ...@@ -93,61 +116,19 @@ This function does not represent a specific distribution, but
implements a standard useful algorithm: implements a standard useful algorithm:
\begin{funcdesc}{shuffle}{x\optional{, random}} \begin{funcdesc}{shuffle}{x\optional{, random}}
Shuffle the sequence \var{x} in place. Shuffle the sequence \var{x} in place.
The optional argument \var{random} is a 0-argument function returning The optional argument \var{random} is a 0-argument function
a random float in [0.0, 1.0); by default, this is the function returning a random float in [0.0, 1.0); by default, this is the
\function{random()}. function \function{random()}.
Note that for even rather small \code{len(\var{x})}, the total number Note that for even rather small \code{len(\var{x})}, the total
of permutations of \var{x} is larger than the period of most random number of permutations of \var{x} is larger than the period of most
number generators; this implies that most permutations of a long random number generators; this implies that most permutations of a
sequence can never be generated. long sequence can never be generated.
\end{funcdesc} \end{funcdesc}
\begin{seealso} \begin{seealso}
\seemodule{whrandom}{The standard Python random number generator.} \seemodule{whrandom}{The standard Python pseudo-random number
generator.}
\end{seealso} \end{seealso}
\subsection{The Random Number Generator Interface
\label{rng-objects}}
% XXX This *must* be updated before a future release!
The \dfn{Random Number Generator} interface describes the methods
which are available for all random number generators. This will be
enhanced in future releases of Python.
In this release of Python, the modules \refmodule{random},
\refmodule{whrandom}, and instances of the
\class{whrandom.whrandom} class all conform to this interface.
\begin{funcdesc}{choice}{seq}
Chooses a random element from the non-empty sequence \var{seq} and
returns it.
\end{funcdesc}
\begin{funcdesc}{randint}{a, b}
\deprecated{2.0}{Use \function{randrange()} instead.}
Returns a random integer \var{N} such that
\code{\var{a} <= \var{N} <= \var{b}}.
\end{funcdesc}
\begin{funcdesc}{random}{}
Returns the next random floating point number in the range [0.0
... 1.0).
\end{funcdesc}
\begin{funcdesc}{randrange}{\optional{start,} stop\optional{, step}}
Return a randomly selected element from \code{range(\var{start},
\var{stop}, \var{step})}. This is equivalent to
\code{choice(range(\var{start}, \var{stop}, \var{step}))}.
\versionadded{1.5.2}
\end{funcdesc}
\begin{funcdesc}{uniform}{a, b}
Returns a random real number \var{N} such that
\code{\var{a} <= \var{N} < \var{b}}.
\end{funcdesc}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment