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;

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.