u/camel-cdrin r/C_Programming • Recommends
How computers generate random numbers (A guide for programmers)
410 subscribers • 1 video on Hallway
- Recommended by 1 person: 1 in engineering communities.
- Linked in the descriptioncamel-cdr/cauldron
Advanced. Deep dive for people who know the field.
1.9K views5 years ago1 recommendation
Computer scienceSystems programmingAlgorithmsMath for programmersC++
This deep dive covers pseudo-random number generators, cryptographically secure generators, and the challenges of generating random floating-point numbers.
Broadcasted live on Twitch -- Watch live at twitch.tv/tccpp Links / Sources: github.com/camel-cdr/cauldron/blob/main/cauldron/random.h "Multiply with carry", George Marsaglia (1994) "On the probability of overlap of random subsequences of pseudorandom number generators" Sebastiano Vigna (2020) pcg-random.org/posts/too-big-to-fail.html en.wikipedia.org/wiki/Linear_congruential_generator pcg-random.org "Predicting the PCG Pseudo-Random Number Generator In Practice." Charles Bouillaguet, Florette Martinez, Julia Sauvage (2020) romu-random.org "Middle Square Weyl Sequence RNG" Bernard Widynski (2017-2020) en.wikipedia.org/wiki/IEEE_754 "Generating Pseudo-random Floating-Point Values" Allen B. Downey (2007) "Generating Random Floating-Point Numbers by Dividing Integers: a Case Study" Frédéric Goualard (2020) "Generating Pseudo-random Floating-Point Values" AllenB. Downey (2007) "The ziggurat method for generating random variables." Marsaglia, G., and Wai Wan Tsang (2000) "A Convenient Method for Generating Normal Variables" Marsaglia, G.; Bray, T. A. (1964) "Computer Generation of Random Variables Using the Ratio of Uniform Deviates" A. J. Kindermann, J. F. Monahan (1976) "A Fast Normal Random Number Generator" Joseph L. Leva (1991) andrew-helmer.github.io/permute/ github.com/camel-cdr/cauldron/blob/main/tools/random/permute… - Introduction - Terminology - A PRNG to think about - Quantifying randomness - Quality and Speed comparison of PRNGs - Permuted congruential generator (PCG) family - Rotate-multiply (Romu) family + Instruction-Level Parallelism (ILP) - Middle Square Weyl Sequence (msws) generator - Random integer in a range - Random floats - Clarifying Seeding and problems with C++'s random library - Random normals - Fisher-Yates shuffle - Random Permutations - Questions and AnswersWhy it's here
1 person recommends thisWhat people say. Recommended as an incredibly thorough deep dive into the complexities of generating random floats and integers.
Moments people linked to
u/camel-cdrin r/compsci • Recommends
u/camel-cdrin r/C_Programming • Mentions
On “Generating random floats is harder than you'd think (YouTube link is timestamped)”
u/camel-cdrin r/C_Programming • Mentions
On “A C Standard Library”
u/camel-cdrin r/C_Programming • Mentions
On “SIMD-oriented Fast Mersenne Twister in C and non STD library discussion”
u/camel-cdrin r/C_Programming • Mentions
On “Bench marking Random Float Functions.”
u/jacksaccountonredditin r/C_Programming • Mentions
On “Best PRNG\CSPRNG do you recommend for Monte Carlo simulations in c?”
u/camel-cdrin r/compsci • Mentions
On “How computers generate random numbers (A guide for programmers)”
u/camel-cdrin r/C_Programming • Mentions
On “Bench marking Random Float Functions.”