This repository contains an essay on the mathematics behind pseudorandom number generators, along with C++ code implementations and a python plot showing an example of where PRNGs can fall down.
-
Pierre L'Ecuyer, \textit{Random Numbers for Simulation}, Communications of the ACM, Volume 33, Issue 10 (1990); https://doi.org/10.1145/84537.84555
-
T. E. Hull, A. R. Dobell, \textit{Random Number Generators}, SIAM review, Volume 4 No. 3 (1962); https://doi.org/10.1137/1004061
-
George Marsaglia, \textit{Random Numbers Fall Mainly in the Planes}, PNAS, Volume 61, Issue 1, pp.25-28 (1968); https://doi.org/10.1073\%2Fpnas.61.1.25
-
Pierre L'Ecuyer, \textit{Tables of Linear Congruential Generators of Different Sizes and Good Lattice Structure}, Mathematics of Computation, Volume 68, No. 225, pp.249–260 (1999); https://doi.org/10.1090/S0025-5718-99-00996-5
-
Richard P. Brent, \textit{Note on Marsaglia's Xorshift Random Number Generators}, Journal of Statistical Software, Volume 11 Issue 5 (2004); http://dx.doi.org/10.18637/jss.v011.i05
-
George Marsaglia, \textit{Random Number Generators}, Journal of Modern Applied Statistical Methods, Volume 2 Issue 1 (2003); https://doi.org/10.22237/jmasm/1051747320
-
Sebastiano Vigna, \textit{An Experimental Exploration of Marsaglia's xorshift Generators, Scrambled}, ACM Transactions on Mathematical Software, Article No. 30 (2016); https://doi.org/10.1145/2845077
-
L’ecuyer, P. and Simard, R. 2007. \textit{TestU01: A C library for empirical testing of random number generators}. ACM Trans. Math. Softw. 33, 4, Article 22 (August 2007), 40 pages; http://doi.acm.org/10.1145/1268776.1268777