IMPLEMENTATION AND STUDY OF THE RANDOM NUMBER GENERATOR BASED ON PARALLEL MIXING
Keywords:
Random number generator, random number mixing, parallel programming, random number generator testsAbstract
The use of random number generators is widespread. Software generators usually produce
pseudo-random numbers. To improve characteristics, it needs a source of "chaos". This article
discusses the implementation of a random number generator that uses the idea of mixing a complete
set of numbers in a parallel thread. The operation of the processor in this mode is influenced by many random factors, which allows issuing random numbers. For the proposed generator, each
subsequent number does not depend on the previous one. The generator can give out any number
of the given range, regardless of how many and what numbers fell out earlier. Including the same
number can fall out with a low probability several times in a row. There is no predetermined sequence
of issuing random numbers. The period inherent in software pseudo-random number generators
is also missing. However, at the same time, the speed of issuing random numbers decreases,
in comparison with software pseudo-random number generators. The purpose of research was
to evaluate the properties of the proposed generator, primarily the statistical characteristics of the
generated numbers. The article deals with the idea of parallel mixing. Implementation issues in a
programming language. The programming interface of the MixRandomBase class and implementation
features of the MixRandomByte class, which uses a working array of bytes, are presented.
Various tests are used to check the quality of the work of random and pseudo-random number
generators. The results of checking the operation of the generator by such tests as the distribution
on the plane, the uniformity test, the “stack of books” test are given. The test results make it possible
to judge the good statistical characteristics of the developed generator. The speed of the generator
is estimated. In comparison with linear congruent pseudo-random number generators, the
time for issuing a sequence of numbers is hundreds of times longer.








