Random Number Generator

This package provides a random number generator. To load the package, enter the query

     | ?- use_module(library(random)).
     

This library fully supports multiple SICStus run-times in a process.

random(-Number)

Binds Number to a random float in the interval [0.0, 1.0). Note that 1.0 will never be generated.

random(+Lower, +Upper, -Number)
Binds Number to a random integer in the interval [Lower,Upper) if Lower and Upper are integers. Otherwise, Number is bound to a random float between Lower and Upper. Upper will never be generated.
randseq(+K, +N, -RandomSeq)

Generates an unordered set of K unique integers, chosen randomly in the range 1..N. RandomSeq is not returned in any particular order.

randset(+K, +N, -RandomSet)

Generates an ordered set of K unique integers, chosen randomly in the range 1..N. The set is returned in standard order.

getrand(?State)

Tries to unify State with the term rand(X,Y,Z) where X, Y, and Z are integers describing the state of the random generator.

setrand(rand(+X,+Y,+Z))

Sets the state of the random generator. X, Y, and Z must be integers in the ranges [1,30269), [1,30307), and [1,30323), respectively.