Home

Module rnd

Bindings for interacting with the random number generator. This module not only allows basic random number generation, but it also handles more complicated statistical stuff. Example usage would be:
 if rnd.rnd() < 0.5 then
 -- 50% chance of this happening
 else
 -- And 50% chance of this happening
 end
 

Functions

rnd.rnd (x, y) Gets a random number.
rnd.sigma () Creates a number in the one-sigma range [-1:1].
rnd.threesigma () Creates a number in the three-sigma range [-3:3].
rnd.twosigma () Creates a number in the two-sigma range [-2:2].


Functions

rnd.rnd (x, y)
Gets a random number. With no parameters it returns a random float between 0 and 1. With one parameter it returns a whole number between 0 and that number (both included). With two parameters it returns a whole number between both parameters (both included).

Parameters

  • x: First parameter, read description for details.
  • y: Second parameter, read description for details.

Usage

  • n = rnd() -- Number in range [0:1].
  • n = rnd(5) -- Number in range [0:5].
  • n = rnd(3,5) -- Number in range [3,5].

Return value:

A randomly generated number, read description for details.
rnd.sigma ()
Creates a number in the one-sigma range [-1:1]. A one sigma range means that it creates a number following the normal distribution but limited to the 63% quadrant. This means that the number is biased towards 0, but can become either 1 or -1. It's a fancier way of generating random numbers.

Usage:

n = 5.5 + rnd.sigma()/2. -- Creates a number from 5 to 6 slightly biased to 5.5.

Return value:

Returns a number from [-1:1] biased slightly towards 0.
rnd.threesigma ()
Creates a number in the three-sigma range [-3:3]. This function behaves much like its brothers rnd.sigma and rnd.twosigma. The main difference is that it uses the three-sigma range which is the 99% quadrant. It will rarely generate numbers outside the [-2:2] range (about 5% of the time) and create numbers outside of the [-1:1] range about 37% of the time. This can be used when you want extremes to appear rarely.

Usage:

n = 5.5 + rnd.threesigma()/6. -- Creates a number from 5 to 6 totally biased to 5.5.

Return value:

Returns a number from [-3:3] biased totally towards 0.
rnd.twosigma ()
Creates a number in the two-sigma range [-2:2]. This function behaves much like the rnd.sigma function but uses the two-sigma range, meaning that numbers are in the 95% quadrant and thus are much more random. They are biased towards 0 and approximately 63% will be within [-1:1]. The rest will be in either the [-2:-1] range or the [1:2] range.

Usage:

n = 5.5 + rnd.twosigma()/4. -- Creates a number from 5 to 6 heavily biased to 5.5.

Return value:

Returns a number from [-2:2] biased heavily towards 0.

Valid XHTML 1.0!