Random module

The random module contains basic functions to generate pseudorandom numbers. LSP uses the Mersenne Twister algorithm as its core generator. It has a long period of 2^19937 − 1.

Note

To use the features of this module, you have to put a special import statement at the begining of your LSP file: use random;

Functions

Before using any of the functions below, you have to create a random instance with the create() function.

random.create()
random.create(seed)

Creates a new random generator with the given seed. The seed is optional. If seed is omitted, the current system time is used to initialize the generator.

Parameters:int (seed) – Seed to initialize the pseudorandom generator.
Return type:random

Types

type random
init()
init(seed)

Re-initializes the random generator with the given seed or a new seed. The seed is optional. If seed is omitted, the current system time is used to initialize the generator.

next(b)
next(a, b)

Returns the next random integer N such that a <= N < b for a <= b and b < N <= a for b < a. The generated numbers are uniformly distributed between the open range induced by a and b.

Return type:int
nextUniform(min, max)

Returns the next floating point number N such that a <= N < b for a <= b and b < N <= a for b < a. The generated numbers are uniformly distributed between the open range induced by a and b.

This method generates floats with 52 bits of precision on the mantissa.

Return type:double
nextNormal()
nextNormal(mu, sigma)

Normal distribution.

Parameters:
  • mu (double) – Mean of the normal distribution
  • sigma (double) – Standard deviation.
nextLogNormal()
nextLogNormal(mu, sigma)

Log normal distribution.

Parameters:
  • mu (double) – Mean of the normal distribution
  • sigma (double) – Standard deviation. Must be greather than 0.