Overview of the RandomTools:-QuadraticCongruence Subpackage
Calling Sequence
Description
List of RandomTools:-QuadraticCongruence Subpackage Commands
Examples
RandomTools:-QuadraticCongruence:-function(arguments)
function(arguments)
The RandomTools:-QuadraticCongruence subpackage contains functions for creating pseudo-random number generators using the Quadratic Congruence algorithm. The integers x1,x2, ... are generated using the quadratic recurrence
xk+1=xk2modn
where n is a product of two primes and x0, the seed, may be specified by the user. They use the least significant bits of the x's to form the random numbers.
The Quadratic Congruential Generator creates generators using primes of length either 10, 12, 15 or 16 digits. These generators can be used for every day scientific applications.
Each command in the RandomTools:-QuadraticCongruence subpackage can be accessed by using either the long form or the short form of the command name in the command calling sequence.
The long form, RandomTools:-QuadradicCongruence:-command, is always available. The short form can be used after loading the package.
NewGenerator
To display the help page for a particular QuadraticCongruence command, see Getting Help with a Command in a Package.
with⁡RandomTools:-QuadraticCongruence
We first create a random number generator for generating random numbers on the range 1..6 and generate two random numbers.
die≔NewGenerator⁡range=1..6
die ≔ procx ≔ irem⁡x^2,n;irem⁡x,6+1end proc
die⁡
6
2
Now we roll the die 10 times.
seq⁡die⁡,i=1..10
2,5,5,1,3,2,5,4,4,5
Now we create a 10 decimal digit random number generator. To form uniformly distributed floating point random numbers with 10 digits of precision on [0,1) we use the command Float⁡m,e which forms the floating point number m⁢10e.
R≔NewGenerator⁡range=0..1010
R ≔ proclocaly;x ≔ irem⁡x^2,n;y ≔ irem⁡x,10000000000;whiley<10000000001dox ≔ irem⁡x^2,n;y ≔ 10000000000*y+irem⁡x,10000000000end do;irem⁡y,10000000001end proc
m≔R⁡
m≔742625902
e≔−10
Float⁡m,e
0.0742625902
seq⁡Float⁡R⁡,e,i=1..5
0.9305361902,0.0805966638,0.4297131736,0.5949740789,0.0017230061
For further options see help page for the NewGenerator command.
See Also
rand
RandomTools
RandomTools[BlumBlumShub]
RandomTools[LinearCongruence]
RandomTools[MersenneTwister]
UsingPackages
with
Download Help Document