Random number generation
May 15, 2015 — September 8, 2023
computers are awful
Monte Carlo
probabilistic algorithms
probability
pseudorandomness
Practical pseudo-RNG implementation. See also pseudorandomness for theories Monte Carlo for some applications, and for some background theory algorithmic statistics.
1 Uniform PRNGs
Generating uniformly distributed numbers on some interval, such as [0,1].
I regularly need to do this in languages that do not support…
- local
- seedable
- convenient
… PRNGs.
Javascript doesn’t support seeding. Supercollider does but insists on a per-thread RNG. MaxMSP is a miscellany of folly as usual.
2 Non-uniform variates
Say you have a uniform RNG but you need… Poisson? Gaussian? RNGs. Now what?
- Luc Devroye’s wonderful and unexpectedly deep Non-Uniform Random Variate Generation has analytic results
- Using NNs to do it? Reassure yourself this is possible (in principle) with the approximation results in Perekrestenko, Müller, and Bölcskei (2020); Perekrestenko, Eberhard, and Bölcskei (2021).
3 References
Devroye. 1986. Non-Uniform Random Variate Generation.
———. 2006. “Non-Uniform Random Variate Generation.” In Handbooks in Operations Research and Management Volume 13 Simulation.
Perekrestenko, Eberhard, and Bölcskei. 2021. “High-Dimensional Distribution Generation Through Deep Neural Networks.” Partial Differential Equations and Applications.
Perekrestenko, Müller, and Bölcskei. 2020. “Constructive Universal High-Dimensional Distribution Generation Through Deep ReLU Networks.”