Skip to content

A set of PRNGs implemented in C++ and Python, tests of their equidistribution, along with an essay on the mathematics behind them

Notifications You must be signed in to change notification settings

austin-hill/PRNGs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

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.

References

  1. Pierre L'Ecuyer, \textit{Random Numbers for Simulation}, Communications of the ACM, Volume 33, Issue 10 (1990); https://doi.org/10.1145/84537.84555

  2. T. E. Hull, A. R. Dobell, \textit{Random Number Generators}, SIAM review, Volume 4 No. 3 (1962); https://doi.org/10.1137/1004061

  3. 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

  4. 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

  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

  6. George Marsaglia, \textit{Random Number Generators}, Journal of Modern Applied Statistical Methods, Volume 2 Issue 1 (2003); https://doi.org/10.22237/jmasm/1051747320

  7. 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

  8. 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

About

A set of PRNGs implemented in C++ and Python, tests of their equidistribution, along with an essay on the mathematics behind them

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published