This page is for an old version of Hexaly Optimizer. We recommend that you update your version and read the documentation for the latest stable release.

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;

Module 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.