In this research, we have studied the applicability of the Collatz Conjecture to pseudo-random number generators (PRNG). The research was motivated by the simplicity of the Collatz function, which makes it attractive as a potential PRNG. We have experimented with several candidate PRNGs based on the trajectory property of the Collatz function and the Collatz graph. The NIST Test Suite (SP 800-22) was used to evaluate the statistical randomness of the output of our PRNGs. In addition, we utilized a method to rank each PRNG by quality of random output. The test results have demonstrated that two of our PRNGs pass the NIST Test Suite, and that there is no significant statistical difference between the outputs of our PRNGs to that of the Mersenne Twister, the built-in PRNG in Python 3.7. To the best of our knowledge, our algorithms are the first to successfully utilize properties of the Collatz function to generate random numbers. Additionally, we have proved that one of our PRNGs generates uniformly distributed output with a period of 232. Finally, we have found that two of our PRNGs perform on par with the Mersenne Twister algorithm. Because our algorithms pass the NIST Test Suite, they are suitable for usage in certain cryptographic applications as well as simulations.
[1]
Takuji Nishimura,et al.
Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator
,
1998,
TOMC.
[2]
Jeffrey C. Lagarias,et al.
The 3x + 1 Problem and its Generalizations
,
1985
.
[3]
Wolfdieter Lang,et al.
On Collatz Words, Sequences, and Trees
,
2014,
J. Integer Seq..
[4]
R. Terras,et al.
A stopping time problem on the positive integers
,
1976
.
[5]
Peter Martin,et al.
An Analysis Of Random Number Generators For A Hardware Implementation Of Genetic Programming Using FPGAs And Handel-C
,
2002,
GECCO.