Module random :: Class Random
[hide private]
[frames] | no frames]

type Random

    object --+    
             |    
_random.Random --+
                 |
                Random
Known Subclasses:

Random number generator base class used by bound module functions.

Used to instantiate instances of Random to get generators that don't share state. Especially useful for multi-threaded programs, creating a different instance of Random for each thread, and using the jumpahead() method to ensure that the generated sequences seen by each thread don't overlap.

Class Random can also be subclassed if you want to use a different basic generator of your own devising: in that case, override the following methods: random(), seed(), getstate(), setstate() and jumpahead(). Optionally, implement a getrandombits() method so that randrange() can cover arbitrarily large ranges.

Instance Methods [hide private]
 
__init__(self, x=None)
Initialize an instance.
None
seed(self, a=None)
Initialize internal state from hashable object.
tuple containing the current state.
getstate(self)
Return internal state; can be passed to setstate() later.
None
setstate(self, state)
Restore internal state from object returned by getstate().
 
__getstate__(self)
 
__setstate__(self, state)
 
__reduce__(self)
 
randrange(self, start, stop=None, step=1, int=<type 'int'>, default=None, maxwidth=9007199254740992)
Choose a random item from range(start, stop[, step]).
 
randint(self, a, b)
Return random integer in range [a, b], including both end points.
 
_randbelow(self, n, _log=<built-in function log>, int=<type 'int'>, _maxwidth=9007199254740992, _Method=<type 'instancemethod'>, _BuiltinMethod=<type 'builtin_function_or_method'>)
Return a random int in the range [0,n)
 
choice(self, seq)
Choose a random element from a non-empty sequence.
 
shuffle(self, x, random=None, int=<type 'int'>)
x, random=random.random -> shuffle list x in place; return None.
 
sample(self, population, k)
Chooses k unique random elements from a population sequence.
 
uniform(self, a, b)
Get a random number in the range [a, b).
 
normalvariate(self, mu, sigma)
Normal distribution.
 
lognormvariate(self, mu, sigma)
Log normal distribution.
 
expovariate(self, lambd)
Exponential distribution.
 
vonmisesvariate(self, mu, kappa)
Circular data distribution.
 
gammavariate(self, alpha, beta)
Gamma distribution.
 
gauss(self, mu, sigma)
Gaussian distribution.
 
betavariate(self, alpha, beta)
Beta distribution.
 
paretovariate(self, alpha)
Pareto distribution.
 
weibullvariate(self, alpha, beta)
Weibull distribution.

Inherited from _random.Random: __getattribute__, __new__, getrandbits, jumpahead, random

Class Variables [hide private]
  VERSION = 2
Method Details [hide private]

__init__(self, x=None)
(Constructor)

 

Initialize an instance.

Optional argument x controls seeding, as for Random.seed().

Overrides: object.__init__

seed(self, a=None)

 

Initialize internal state from hashable object.

None or no argument seeds from current time or from an operating system specific randomness source if available.

If a is not None or an int or long, hash(a) is used instead.

Returns: None
Overrides: _random.Random.seed

getstate(self)

 

Return internal state; can be passed to setstate() later.

Returns: tuple containing the current state.
Overrides: _random.Random.getstate

setstate(self, state)

 

Restore internal state from object returned by getstate().

Returns: None
Overrides: _random.Random.setstate

__reduce__(self)

 
Overrides: object.__reduce__
(inherited documentation)

randrange(self, start, stop=None, step=1, int=<type 'int'>, default=None, maxwidth=9007199254740992)

 

Choose a random item from range(start, stop[, step]).

This fixes the problem with randint() which includes the endpoint; in Python this is usually not what you want. Do not supply the 'int', 'default', and 'maxwidth' arguments.

_randbelow(self, n, _log=<built-in function log>, int=<type 'int'>, _maxwidth=9007199254740992, _Method=<type 'instancemethod'>, _BuiltinMethod=<type 'builtin_function_or_method'>)

 

Return a random int in the range [0,n)

Handles the case where n has more bits than returned by a single call to the underlying generator.

shuffle(self, x, random=None, int=<type 'int'>)

 

x, random=random.random -> shuffle list x in place; return None.

Optional arg random is a 0-argument function returning a random float in [0.0, 1.0); by default, the standard random.random.

sample(self, population, k)

 

Chooses k unique random elements from a population sequence.

Returns a new list containing elements from the population while leaving the original population unchanged. The resulting list is in selection order so that all sub-slices will also be valid random samples. This allows raffle winners (the sample) to be partitioned into grand prize and second place winners (the subslices).

Members of the population need not be hashable or unique. If the population contains repeats, then each occurrence is a possible selection in the sample.

To choose a sample in a range of integers, use xrange as an argument. This is especially fast and space efficient for sampling from a large population: sample(xrange(10000000), 60)

normalvariate(self, mu, sigma)

 

Normal distribution.

mu is the mean, and sigma is the standard deviation.

lognormvariate(self, mu, sigma)

 

Log normal distribution.

If you take the natural logarithm of this distribution, you'll get a normal distribution with mean mu and standard deviation sigma. mu can have any value, and sigma must be greater than zero.

expovariate(self, lambd)

 

Exponential distribution.

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 range from 0 to positive infinity.

vonmisesvariate(self, mu, kappa)

 

Circular data distribution.

mu is the mean angle, expressed in radians between 0 and 2*pi, and kappa is the concentration parameter, which must be greater than or equal to zero. If kappa is equal to zero, this distribution reduces to a uniform random angle over the range 0 to 2*pi.

gammavariate(self, alpha, beta)

 

Gamma distribution. Not the gamma function!

Conditions on the parameters are alpha > 0 and beta > 0.

gauss(self, mu, sigma)

 

Gaussian distribution.

mu is the mean, and sigma is the standard deviation. This is slightly faster than the normalvariate() function.

Not thread-safe without a lock around calls.

betavariate(self, alpha, beta)

 
Beta distribution.

Conditions on the parameters are alpha > -1 and beta} > -1.
Returned values range between 0 and 1.

paretovariate(self, alpha)

 

Pareto distribution. alpha is the shape parameter.

weibullvariate(self, alpha, beta)

 

Weibull distribution.

alpha is the scale parameter and beta is the shape parameter.