We have been looking at how we might approximate random variables with pseudo random number generators, such as the sequences generated with linear congruences of the form

where represents the remainder of the integer division of as the

Whilst these are supremely easy to implement and extremely efficient in terms of both speed of execution and use of memory, choosing appropriate values for is a rather difficult proposition; get it wrong and they will produce weak pseudo random numbers and, unfortunately, the ways in which we can do so are extremely subtle.

*x*_{i+1}= (*a*×*x*_{i}) %*m*where

*x*%

*m*

*x*by*m*,*a*is known as the*multiplier*,*c*as the*increment*,*m*as the*modulus*and*x*

_{0}

*seed*.Whilst these are supremely easy to implement and extremely efficient in terms of both speed of execution and use of memory, choosing appropriate values for

*a*,*c*,*m*and*x*

_{0}

Full text...