\section{\module{whrandom} --- Pseudo-random number generator} \declaremodule{standard}{whrandom} \modulesynopsis{Floating point pseudo-random number generator.} \deprecated{2.1}{Use \refmodule{random} instead.} \strong{Note:} This module was an implementation detail of the \refmodule{random} module in releases of Python prior to 2.1. It is no longer used. Please do not use this module directly; use \refmodule{random} instead. This module implements a Wichmann-Hill pseudo-random number generator class that is also named \class{whrandom}. Instances of the \class{whrandom} class conform to the Random Number Generator interface described in section \ref{rng-objects}. They also offer the following method, specific to the Wichmann-Hill algorithm: \begin{methoddesc}[whrandom]{seed}{\optional{x, y, z}} Initializes the random number generator from the integers \var{x}, \var{y} and \var{z}. When the module is first imported, the random number is initialized using values derived from the current time. If \var{x}, \var{y}, and \var{z} are either omitted or \code{0}, the seed will be computed from the current system time. If one or two of the parameters are \code{0}, but not all three, the zero values are replaced by ones. This causes some apparently different seeds to be equal, with the corresponding result on the pseudo-random series produced by the generator. \end{methoddesc} \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} 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}{seed}{x, y, z} Initializes the random number generator from the integers \var{x}, \var{y} and \var{z}. When the module is first imported, the random number is initialized using values derived from the current time. \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} When imported, the \module{whrandom} module also creates an instance of the \class{whrandom} class, and makes the methods of that instance available at the module level. Therefore one can write either \code{N = whrandom.random()} or: \begin{verbatim} generator = whrandom.whrandom() N = generator.random() \end{verbatim} Note that using separate instances of the generator leads to independent sequences of pseudo-random numbers. \begin{seealso} \seemodule{random}{Generators for various random distributions and documentation for the Random Number Generator interface.} \seetext{Wichmann, B. A. \& Hill, I. D., ``Algorithm AS 183: An efficient and portable pseudo-random number generator'', \citetitle{Applied Statistics} 31 (1982) 188-190.} \end{seealso}