Abstract

The use of random number generators is widespread. Software generators usually producepseudo-random numbers. To improve characteristics, it needs a source of "chaos". This articlediscusses the implementation of a random number generator that uses the idea of mixing a completeset 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, eachsubsequent number does not depend on the previous one. The generator can give out any numberof the given range, regardless of how many and what numbers fell out earlier. Including the samenumber can fall out with a low probability several times in a row. There is no predetermined sequenceof issuing random numbers. The period inherent in software pseudo-random number generatorsis 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 wasto evaluate the properties of the proposed generator, primarily the statistical characteristics of thegenerated numbers. The article deals with the idea of parallel mixing. Implementation issues in aprogramming language. The programming interface of the MixRandomBase class and implementationfeatures 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 numbergenerators. The results of checking the operation of the generator by such tests as the distributionon the plane, the uniformity test, the “stack of books” test are given. The test results make it possibleto judge the good statistical characteristics of the developed generator. The speed of the generatoris estimated. In comparison with linear congruent pseudo-random number generators, thetime for issuing a sequence of numbers is hundreds of times longer.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call