Module random
[hide private]
[frames] | no frames]

Module random

Random variable generators.

    integers
    --------
           uniform within range

    sequences
    ---------
           pick random element
           pick random sample
           generate random permutation

    distributions on the real line:
    ------------------------------
           uniform
           normal (Gaussian)
           lognormal
           negative exponential
           gamma
           beta
           pareto
           Weibull

    distributions on the circle (angles 0 to 2pi)
    ---------------------------------------------
           circular uniform
           von Mises

General notes on the underlying Mersenne Twister core generator:

* The period is 2**19937-1.
* It is one of the most extensively tested generators in existence.
* Without a direct way to compute N steps forward, the semantics of
  jumpahead(n) are weakened to simply jump to another distant state and rely
  on the large period to avoid overlapping sequences.
* The random() method is implemented in C, executes in a single Python step,
  and is, therefore, threadsafe.



Classes [hide private]
Random Random number generator base class used by bound module functions.
SystemRandom Alternate random number generator using sources provided by the operating system (such as /dev/urandom on Unix or CryptGenRandom on Windows).
WichmannHill  

Functions [hide private]
  _test(N=2000)
  _test_generator(n, func, args)
  betavariate(alpha, beta)
Beta distribution.
  choice(seq)
Choose a random element from a non-empty sequence.
  expovariate(lambd)
Exponential distribution.
  gammavariate(alpha, beta)
Gamma distribution.
  gauss(mu, sigma)
Gaussian distribution.
  getrandbits(k)
Generates a long int with k random bits.
  getstate()
Return internal state; can be passed to setstate() later.
  jumpahead(int)
Create new state from existing state and integer.
  lognormvariate(mu, sigma)
Log normal distribution.
  normalvariate(mu, sigma)
Normal distribution.
  paretovariate(alpha)
Pareto distribution.
  randint(a, b)
Return random integer in range [a, b], including both end points.
  random()
  randrange(start, stop={}, step=1, int=<type 'int'>, default={}, maxwidth=9007199254740992L)
Choose a random item from range(start, stop[, step]).
  sample(population, k)
Chooses k unique random elements from a population sequence.
  seed(a={})
Initialize internal state from hashable object.
  setstate(state)
Restore internal state from object returned by getstate().
  shuffle(x, random={}, int=<type 'int'>)
x, random=random.random -> shuffle list x in place; return None.
  uniform(a, b)
Get a random number in the range [a, b).
  vonmisesvariate(mu, kappa)
Circular data distribution.
  weibullvariate(alpha, beta)
Weibull distribution.

Variables [hide private]
BPF  
LOG4  
NV_MAGICCONST  
RECIP_BPF  
SG_MAGICCONST  
TWOPI  
_e  
_inst  
_pi  

Function Details [hide private]

_test(N=2000)

 

_test_generator(n, func, args)

 

betavariate(alpha, beta)

 
Beta distribution.

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

choice(seq)

 
Choose a random element from a non-empty sequence.

expovariate(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.

gammavariate(alpha, beta)

 

Gamma distribution. Not the gamma function!

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

gauss(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.

getrandbits(k)

 
Generates a long int with k random bits.
Returns:
x

getstate()

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

jumpahead(int)

 
Create new state from existing state and integer.
Returns:
None

lognormvariate(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.

normalvariate(mu, sigma)

 

Normal distribution.

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

paretovariate(alpha)

 
Pareto distribution. alpha is the shape parameter.

randint(a, b)

 
Return random integer in range [a, b], including both end points.

random()

 
Returns:
x in the interval [0, 1).

randrange(start, stop={}, step=1, int=<type 'int'>, default={}, maxwidth=9007199254740992L)

 

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.

sample(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)

seed(a={})

 

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.

setstate(state)

 
Restore internal state from object returned by getstate().

shuffle(x, random={}, 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.

uniform(a, b)

 
Get a random number in the range [a, b).

vonmisesvariate(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.

weibullvariate(alpha, beta)

 

Weibull distribution.

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

Variables Details [hide private]

BPF

Value:
53                                                                    
      

LOG4

Value:
1.3862943611198906                                                    
      

NV_MAGICCONST

Value:
1.7155277699214135                                                    
      

RECIP_BPF

Value:
1.1102230246251565e-16                                                
      

SG_MAGICCONST

Value:
2.5040773967762742                                                    
      

TWOPI

Value:
6.2831853071795862                                                    
      

_e

Value:
2.7182818284590451                                                    
      

_inst

Value:
<random.Random object at 0x840c234>                                    
      

_pi

Value:
3.1415926535897931