Search results
Results from the WOW.Com Content Network
A modular multiplicative inverse of an integer a with respect to the modulus m is a solution of the linear congruence a x ≡ 1 ( mod m ) . {\displaystyle ax\equiv 1{\pmod {m}}.} The previous result says that a solution exists if and only if gcd( a , m ) = 1 , that is, a and m must be relatively prime (i.e. coprime).
Inversive congruential generators are a type of nonlinear congruential pseudorandom number generator, which use the modular multiplicative inverse (if it exists) to generate the next number in a sequence. The standard formula for an inversive congruential generator, modulo some prime q is:
The Lehmer random number generator [1] (named after D. H. Lehmer), sometimes also referred to as the Park–Miller random number generator (after Stephen K. Park and Keith W. Miller), is a type of linear congruential generator (LCG) that operates in multiplicative group of integers modulo n. The general formula is
In modular arithmetic, the modular multiplicative inverse of a is also defined: it is the number x such that ax ≡ 1 (mod n). This multiplicative inverse exists if and only if a and n are coprime. For example, the inverse of 3 modulo 11 is 4 because 4 ⋅ 3 ≡ 1 (mod 11). The extended Euclidean algorithm may be used to compute it.
With that provision, x is the modular multiplicative inverse of a modulo b, and y is the modular multiplicative inverse of b modulo a. Similarly, the polynomial extended Euclidean algorithm allows one to compute the multiplicative inverse in algebraic field extensions and, in particular in finite fields of non prime order.
This integer a −1 is called a modular multiplicative inverse of a modulo m. If a ≡ b (mod m) and a −1 exists, then a −1 ≡ b −1 (mod m) (compatibility with multiplicative inverse, and, if a = b, uniqueness modulo m). If ax ≡ b (mod m) and a is coprime to m, then the solution to this linear congruence is given by x ≡ a −1 b (mod m).
For example, given b = 5, e = 3 and m = 13, dividing 5 3 = 125 by 13 leaves a remainder of c = 8. Modular exponentiation can be performed with a negative exponent e by finding the modular multiplicative inverse d of b modulo m using the extended Euclidean algorithm. That is: c = b e mod m = d −e mod m, where e < 0 and b ⋅ d ≡ 1 (mod m).
The CLCG provides an efficient way to calculate pseudo-random numbers. The LCG algorithm is computationally inexpensive to use. [3] The results of multiple LCG algorithms are combined through the CLCG algorithm to create pseudo-random numbers with a longer period than is achievable with the LCG method by itself. [3]