# Rejection sampling

**Rejection sampling** is a [Monte Carlo method](https://www.edgepedia.org/monte-carlo-method) for drawing exact samples from a target probability density that cannot be sampled directly: it draws candidates from an easier proposal density and accepts or rejects each candidate using a test on the ratio of the two densities. The method is attributed to [John von Neumann](https://www.edgepedia.org/john-von-neumann)'s 1951 work<sup>[1](http://publish.illinois.edu/yuguo/files/2012/12/SPL_final.pdf)</sup>, and every accepted sample is an independent, identically distributed draw from the target, which distinguishes it from [Markov chain Monte Carlo](https://www.edgepedia.org/markov-chain-monte-carlo) methods that produce dependent samples<sup>[2](https://proceedings.mlr.press/v98/achddou19a/achddou19a.pdf)</sup><sup> • </sup><sup>[3](https://ar5iv.labs.arxiv.org/html/0904.1300)</sup>.

| Key fact | Detail |
|---|---|
| Envelope condition | A proposal density g and constant M must satisfy f(x) ≤ M·g(x) everywhere; M is called the rejection constant and M·g the envelope<sup>[2](https://proceedings.mlr.press/v98/achddou19a/achddou19a.pdf)</sup> |
| Accept test | Draw X from g and U uniform on [0,1]; accept X if U ≤ f(X)/(M·g(X))<sup>[1](http://publish.illinois.edu/yuguo/files/2012/12/SPL_final.pdf)</sup> |
| Exactness | Accepted samples are provably i.i.d. draws from the target; no burn-in or weighting is needed<sup>[2](https://proceedings.mlr.press/v98/achddou19a/achddou19a.pdf)</sup><sup> • </sup><sup>[4](https://cswr.nrhstat.org/reject-samp)</sup> |
| Cost | The number of proposals per accepted sample is geometric with mean M, so efficiency equals 1/M<sup>[5](https://hef.ru.nl/~tbudd/mct/lectures/monte_carlo_integration.html)</sup><sup> • </sup><sup>[6](https://pdg.lbl.gov/1999/monterpp.pdf)</sup> |
| Dimension limit | For comparable d-dimensional targets and proposals, M grows exponentially in d and the acceptance rate falls as O(e^(−cd)); the method is recommended mainly for one or two dimensions<sup>[7](https://theorempath.com/topics/rejection-sampling)</sup><sup> • </sup><sup>[8](https://web.maths.unsw.edu.au/~yanan/monte.pdf)</sup> |
| Practical advantage | The target needs to be evaluable only up to a constant of proportionality; normalizing constants are never required<sup>[9](https://www2.stat.duke.edu/~rcs46/lecturesModernBayes/601-module5-montecarlo/lecture9-monte-carlo.pdf)</sup><sup> • </sup><sup>[4](https://cswr.nrhstat.org/reject-samp)</sup> |
| Failure mode | An underestimated M silently biases the sampler; no finite M exists when the proposal has lighter tails than the target<sup>[10](https://aiwiki.ai/wiki/rejection_sampling)</sup><sup> • </sup><sup>[11](https://www.stat.columbia.edu/~gelman/research/published/itsim_interface.pdf)</sup> |

## The algorithm

The method needs three ingredients: a target density f, a proposal density g that can be sampled directly, and a constant M such that f(x) ≤ M·g(x) on the support of f. One reference work states the same construction with a dominating function h whose finite integral α over the range of f defines the normalized envelope g(x) = h(x)/α<sup>[12](https://encyclopediaofmath.org/wiki/Acceptance-rejection_method)</sup>.

Each step proceeds as follows<sup>[1](http://publish.illinois.edu/yuguo/files/2012/12/SPL_final.pdf)</sup><sup> • </sup><sup>[12](https://encyclopediaofmath.org/wiki/Acceptance-rejection_method)</sup>:

1. Draw a candidate X from the proposal g.
2. Draw a uniform random number U on [0,1].
3. Accept X if U ≤ f(X)/(M·g(X)); otherwise reject X and return to step 1.

The correctness theorem states that the accepted candidate has exactly the target distribution: the conditional distribution of a drawn X given acceptance is the normalized target p(x) = f(x)/∫f(x)dx, for any measurable set<sup>[11](https://www.stat.columbia.edu/~gelman/research/published/itsim_interface.pdf)</sup><sup> • </sup><sup>[7](https://theorempath.com/topics/rejection-sampling)</sup>. A textbook formulation proves that if αf(x) ≤ g(x) for all x with α > 0, the accepted proposal has density f<sup>[4](https://cswr.nrhstat.org/reject-samp)</sup>. The mechanism has a geometric reading: evaluating the envelope M·g(X) at each candidate and drawing a random height uniform between 0 and that value places a point uniformly under the envelope curve, and the candidate is accepted when the point falls below the target curve, so accepted points are uniform under f<sup>[13](https://homepages.inf.ed.ac.uk/imurray2/pub/04rejection_cftp/rejection_cftp.pdf)</sup>. SciPy's documentation describes the same principle as drawing a variate from the bound, then a uniform number between 0 and the bound's value, and returning the sample if that number is below the PDF<sup>[14](https://docs.scipy.org/doc/scipy/tutorial/stats/sampling.html)</sup>.

**Unnormalized targets.** The test uses only the ratio f(X)/(M·g(X)), so the target may be known up to a constant of proportionality, which is the usual situation in [Bayesian statistics](https://www.edgepedia.org/bayesian-statistics) and physics where normalizing constants are intractable<sup>[9](https://www2.stat.duke.edu/~rcs46/lecturesModernBayes/601-module5-montecarlo/lecture9-monte-carlo.pdf)</sup><sup> • </sup><sup>[4](https://cswr.nrhstat.org/reject-samp)</sup>.

## Efficiency and the envelope constant

The tightest legal choice is M = sup_x f(x)/g(x); any smaller constant violates the domination condition somewhere<sup>[7](https://theorempath.com/topics/rejection-sampling)</sup><sup> • </sup><sup>[15](https://mpaldridge.github.io/math5835/lectures/L15-envelope-1.html)</sup>. The number of proposals needed to obtain one accepted sample is a geometric random variable with success probability 1/M, so the expected number of proposals per accepted sample is E[N] = M and the acceptance probability is 1/M<sup>[5](https://hef.ru.nl/~tbudd/mct/lectures/monte_carlo_integration.html)</sup><sup> • </sup><sup>[16](https://sites.stat.washington.edu/mmp/courses/403/sp25/handouts/l3good-importance.pdf)</sup>. The Particle Data Group's Monte Carlo review states the same quantity as the efficiency, the ratio of the areas under the target and the bounding curve, which equals 1/C, so C should be kept close to 1<sup>[6](https://pdg.lbl.gov/1999/monterpp.pdf)</sup>. For a target on an interval [a, b] sampled under a flat envelope, the acceptance probability is 1/(M(b−a)), so both the constant and the envelope's width matter<sup>[17](https://apurvanakade.github.io/Monte-Carlo-Methods/chapters/sampling/accept_reject.html)</sup>.

**What goes wrong.** If M is underestimated, the envelope dips below the target somewhere and the sampler silently produces a biased distribution, so a small overestimate is preferred when no closed-form supremum is available<sup>[10](https://aiwiki.ai/wiki/rejection_sampling)</sup>. If no finite M exists, which happens when the proposal has lighter tails than the target, the method cannot be used at all; in practice a poor proposal makes M so large that almost all proposals are rejected<sup>[11](https://www.stat.columbia.edu/~gelman/research/published/itsim_interface.pdf)</sup>. A finite constant need not exist in general: informally, g must have tails at least as heavy as those of f<sup>[15](https://mpaldridge.github.io/math5835/lectures/L15-envelope-1.html)</sup>.

The method is sometimes described as self-monitoring when a setup produces no accepted draws, but this does not catch every error: an underestimated M can silently bias the sampler<sup>[11](https://www.stat.columbia.edu/~gelman/research/published/itsim_interface.pdf)</sup>. The rejection probability equals 1 − 1/M, so the constant should be as close to 1 as the domination condition allows<sup>[4](https://cswr.nrhstat.org/reject-samp)</sup>.

## By the numbers

An AFIT instructional study with 20,000 accepted values raised the envelope constant A from 3 to 8; the iterations required grew from about 60,000 to 160,000, and the measured efficiency fell from 33.3% to 12.5%, matching the theoretical 1/A<sup>[18](https://www.afit.edu/STAT/statcoe_files/Sampling%20from%20Arbitrary%20Distributions%20using%20the%20Rejection%20Method1.pdf)</sup>. A benchmark in an R textbook found that an adaptive envelope raised the acceptance rate from below 20% to about 80%, yet the runtime was comparable to and slightly slower than a uniform proposal, a reminder that acceptance rate is a surrogate for actual runtime<sup>[4](https://cswr.nrhstat.org/reject-samp)</sup>.

Physics applications show the cost of loose envelopes. In neutron incoherent inelastic thermal scattering, a scheme that samples outgoing energy and scattering cosine uniformly accepts on the order of 0.01% of proposals for some (α, β) pairs because the sampled surface varies by orders of magnitude; the computational cost rose by more than two orders of magnitude in a heavily scattering pure graphite system and by roughly 5 to 50 times in a reactor-like system with fissile isotopes<sup>[19](https://www.osti.gov/servlets/purl/1393167)</sup>. A rendering textbook gives the geometric version: sampling points in a disk enclosed by a square accepts with probability equal to the disk's area divided by the square's area, π/4, and the analogous ratio degrades as dimension grows<sup>[20](https://www.pbr-book.org/4ed/Sampling_Algorithms/The_Rejection_Method)</sup>.

## The curse of dimensionality

For comparable d-dimensional targets and proposals, for example two Gaussians with different means or covariances, the envelope constant M grows exponentially in the dimension d, and the acceptance rate 1/M = O(e^(−cd)) decreases exponentially for some constant c > 0<sup>[7](https://theorempath.com/topics/rejection-sampling)</sup>. The geometric reason is that volumes grow as r^d, making tight bounds harder to achieve, and evaluating density ratios becomes expensive in high dimensions<sup>[17](https://apurvanakade.github.io/Monte-Carlo-Methods/chapters/sampling/accept_reject.html)</sup>. The hypersphere case makes this concrete: the acceptance volume ratio for a d-dimensional hypersphere in its bounding cube degrades with dimension<sup>[20](https://www.pbr-book.org/4ed/Sampling_Algorithms/The_Rejection_Method)</sup>.

A comparative review therefore recommends rejection sampling when the target has one or two dimensions and a good enveloping function and constant can easily be found, while sequential [Monte Carlo](https://www.edgepedia.org/monte-carlo) and MCMC are preferable in higher dimensions<sup>[8](https://web.maths.unsw.edu.au/~yanan/monte.pdf)</sup>. The same effect appears in a recent variational method built on rejection sampling: on MNIST benchmarks the best negative log-likelihood occurred at latent dimensionalities around 32 to 64, with larger latent spaces reducing the calibrated acceptance rate and worsening the fit<sup>[21](https://raw.githubusercontent.com/mlresearch/v337/main/assets/xu26e/xu26e.pdf)</sup>.

## Choosing a proposal distribution

A good proposal g is one close to the target, because the acceptance probability equals 1/M and a good g makes M = sup_x p(x)/q(x) small, with M ≥ 1 always<sup>[16](https://sites.stat.washington.edu/mmp/courses/403/sp25/handouts/l3good-importance.pdf)</sup>. The proposal must also have tails at least as heavy as the target's, or no finite constant exists<sup>[15](https://mpaldridge.github.io/math5835/lectures/L15-envelope-1.html)</sup>. Given a fixed proposal, the envelope h should be taken as small as possible while still satisfying the domination condition, since a tighter envelope improves efficiency<sup>[22](https://ic1.ugr.es/members/phurtado/wp-content/uploads/sites/3/2017/12/computational-methods-nonlinear-physics-CH2-INT.pdf)</sup>.

The main practical limitation is analytic: the envelope requires establishing a bound on the ratio of target and proposal densities, and general methods for computing exact bounds are lacking<sup>[3](https://ar5iv.labs.arxiv.org/html/0904.1300)</sup>. Excessively large constants cause substantial inefficiency that becomes acute in complex multi-dimensional problems, and a clever choice of proposal permits smaller constants<sup>[18](https://www.afit.edu/STAT/statcoe_files/Sampling%20from%20Arbitrary%20Distributions%20using%20the%20Rejection%20Method1.pdf)</sup>. In Monte Carlo event generation, the proposal must be both efficiently sampleable and efficiently evaluable, which constrains the choice of auxiliary density<sup>[23](https://link.aps.org/doi/10.1103/PhysRevD.102.013003)</sup>.

## Variants: squeezes and adaptive rejection

**Squeeze tests.** When evaluating the target is expensive, a cheap lower bound L(x) ≤ f(x)/(M·g(x)), called a squeezing function, is checked first: a candidate whose uniform draw falls below L(x) is accepted immediately without evaluating f, and one above the acceptance ratio f(x)/(M·g(x)) is rejected immediately; only the remaining candidates need the full ratio test<sup>[12](https://encyclopediaofmath.org/wiki/Acceptance-rejection_method)</sup><sup> • </sup><sup>[7](https://theorempath.com/topics/rejection-sampling)</sup>. Well-tuned implementations in Beta and Gamma random variate generators reduce expensive density evaluations by an order of magnitude this way<sup>[10](https://aiwiki.ai/wiki/rejection_sampling)</sup>.

**Adaptive rejection sampling.** Gilks's 1992 adaptive rejection sampling (ARS) builds and refines the envelope during sampling, but the procedure is valid only when the target pdf is strictly log-concave, which is not the case in most practical problems; extensions to T-concave distributions do not resolve the inability to handle multimodal targets, and the Metropolis–Hastings extension ARMS yields correlated samples that can get trapped in a single mode<sup>[3](https://ar5iv.labs.arxiv.org/html/0904.1300)</sup>. SciPy implements Transformed Density Rejection (TDR), an acceptance/rejection method that uses the concavity of a transformed density to construct hat functions and squeezes automatically; it applies to univariate, unimodal continuous distributions with T-concave density and is designed as a universal method that is not too slow and needs only a short setup, unlike fast specialized algorithms with large tables<sup>[24](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.sampling.TransformedDensityRejection.html)</sup>.

## How it compares with other Monte Carlo samplers

The defining trade-off is exactness against scalability. Rejection sampling produces independent, unweighted, exact samples with no burn-in, unlike importance sampling, which produces weighted samples whose efficiency is measured by effective sample size, the number of i.i.d. samples equivalent to the N weighted ones<sup>[8](https://web.maths.unsw.edu.au/~yanan/monte.pdf)</sup><sup> • </sup><sup>[1](http://publish.illinois.edu/yuguo/files/2012/12/SPL_final.pdf)</sup>. It differs from MCMC methods such as the [Metropolis](https://www.edgepedia.org/metropolis) algorithm (1953), Metropolis–Hastings (1970), [Gibbs sampling](https://www.edgepedia.org/gibbs-sampling) (1984), and slice sampling (2003), which produce dependent sequences and therefore fulfill a different objective<sup>[2](https://proceedings.mlr.press/v98/achddou19a/achddou19a.pdf)</sup><sup> • </sup><sup>[25](https://ar5iv.labs.arxiv.org/html/2011.00901)</sup>. Metropolis–Hastings gives up the i.i.d. property but is preferred for high-dimensional Bayesian posteriors, where rejection sampling's envelope constant grows exponentially and the rejection rate runs away<sup>[10](https://aiwiki.ai/wiki/rejection_sampling)</sup>.

The two independent-sampling methods are closely related in the physics literature: the Particle Data Group presents concentrating trial points where f is largest as importance sampling, the companion technique to rejection<sup>[6](https://pdg.lbl.gov/1999/monterpp.pdf)</sup>. Biased sampling over a subset of interest, with weights applied to successful events, can significantly speed up simulations and make otherwise impossible Monte Carlo problems solvable, but requires skill and experience<sup>[26](https://indico.jlab.org/event/828/contributions/13958/attachments/10705/16596/MonteCarloMethods.pdf)</sup>. Rejection ideas also appear inside MCMC: in [Hamiltonian Monte Carlo](https://www.edgepedia.org/hamiltonian-monte-carlo), alternative integrators can yield three or more times more accepted proposals than leapfrog at high dimensionality, with test dimensions from 15 to 4096<sup>[27](https://beta.sanzserna.org/wp-content/uploads/2021/01/726_journal-of-comput.pdf)</sup>.

Sources use different names for the same procedure: the Encyclopedia of Mathematics calls it the acceptance-rejection method with a dominating function h<sup>[12](https://encyclopediaofmath.org/wiki/Acceptance-rejection_method)</sup>, lecture notes call it envelope rejection sampling with constant c<sup>[15](https://mpaldridge.github.io/math5835/lectures/L15-envelope-1.html)</sup>, and the machine learning literature calls it rejection sampling with a rejection constant M<sup>[2](https://proceedings.mlr.press/v98/achddou19a/achddou19a.pdf)</sup>. The notation for the constant (M, c, α, or A) likewise varies by source; the algorithm itself is identical.

## Applications in physics simulation

Rejection sampling is a workhorse inside production Monte Carlo codes for particle transport and detector simulation. The Geant4 Physics Reference Manual, CERN's official documentation for detector simulation, describes [Monte Carlo sampling](https://www.edgepedia.org/monte-carlo-sampling) methods including rejection-based sampling and points readers to the classic Monte Carlo literature of Butcher and Messel, Messel and Crawford, and Ford and Nelson<sup>[28](https://geant4-userdoc.web.cern.ch/UsersGuides/PhysicsReferenceManual/fo/PhysicsReferenceManual.pdf)</sup>. Monte Carlo packages for high-energy physics, including MCNP developed at Los Alamos, contain heavily optimized rejection samplers for cross-section distributions, angular scattering distributions, and energy spectra<sup>[10](https://aiwiki.ai/wiki/rejection_sampling)</sup>.

Recent transport work shows both the appeal and the cost of exactness. A rejection scheme for neutron incoherent inelastic thermal scattering samples outgoing energy uniformly from 0 to E + 20k_BT and the scattering cosine uniformly from −1 to 1, accepting when a random number falls below the ratio of √E0·S(α,β) to a fixed sampling limit set above that surface's maximum<sup>[19](https://www.osti.gov/servlets/purl/1393167)</sup>. The scheme reproduced traditional results for the analytic free gas case in fixed-source and eigenvalue simulations, demonstrating validity, though it does not exactly match discrete S(α,β) models for materials like graphite because of kernel interpolation, and the authors state that non-uniform weighted sampling will be necessary for practicality<sup>[19](https://www.osti.gov/servlets/purl/1393167)</sup>. In the FRENSIE nuclear research framework, three rejection sampling methods for the adjoint Klein–Nishina cross section (two-branch, three-branch linear, and three-branch inverse) were verified in an infinite medium adjoint Monte Carlo problem to produce results in agreement with an equivalent forward simulation<sup>[29](https://www.osti.gov/biblio/1820543)</sup>.

**Verification in practice.** The recurring validation pattern is comparison against an independent implementation or a forward simulation: a rendering textbook recommends replacing an inversion-method sampler with a straightforward rejection implementation as a debugging cross-check for Monte Carlo code<sup>[20](https://www.pbr-book.org/4ed/Sampling_Algorithms/The_Rejection_Method)</sup>, and the neutron and adjoint-sampling studies above both validate against traditional or forward results<sup>[19](https://www.osti.gov/servlets/purl/1393167)</sup><sup> • </sup><sup>[29](https://www.osti.gov/biblio/1820543)</sup>. The self-monitoring property adds a runtime check: a badly specified envelope simply stops producing accepted draws<sup>[11](https://www.stat.columbia.edu/~gelman/research/published/itsim_interface.pdf)</sup>.

## Recent developments

Rejection sampling has been revived inside machine learning pipelines where exactness or sample quality matters.

**Diffusion models.** Diffusion Rejection Sampling (DiffRS, 2024) applies the method at each step of a diffusion sampler by defining a rejection constant M_t per diffusion step t. Since the exact M_t is computationally intractable, DiffRS estimates it as the γ-th percentile of stored likelihood ratios from base-sampler samples<sup>[30](https://arxiv.org/html/2405.17880)</sup>.

**Differentiable simulation.** A 2024 Fermilab-affiliated paper introduced an autodifferentiable rejection sampling algorithm and applied it to fitting a hadronization model in particle physics Monte Carlo simulation, making the accept–reject loop itself differentiable<sup>[31](https://arxiv.org/html/2411.02194v2)</sup>.

**Language models.** Constrained Adaptive Rejection Sampling (CARS, 2026 proceedings) improves the sample efficiency of rejection sampling for constrained language-model generation without distributional distortion, by starting from unconstrained LM sampling and adaptively ruling out constraint-violating continuations recorded in a trie<sup>[32](https://proceedings.mlr.press/v306/parys26a.html)</sup>. Implicit Variational Rejection Sampling (IVRS, 2026) uses a smooth rejection-inspired mechanism with a scaling parameter M controlling the acceptance probability; the KL divergence between the resampled variational distribution and the true posterior is monotonically non-increasing in M, with the acceptance rate approaching 1 as M → 0 and 0 as M → ∞. On UCI Bayesian neural network benchmarks, larger M in {0.1, 1, 10, 100, 500} consistently lowered NLL and RMSE while the relative cost grew only moderately, within 2–3× even at M = 500<sup>[21](https://raw.githubusercontent.com/mlresearch/v337/main/assets/xu26e/xu26e.pdf)</sup>.

## References

1. [Rejection sampling and importance sampling (Statistics & Probability Letters)](http://publish.illinois.edu/yuguo/files/2012/12/SPL_final.pdf)
2. [A minimax near-optimal algorithm for adaptive rejection sampling (ICML 2019)](https://proceedings.mlr.press/v98/achddou19a/achddou19a.pdf)
3. [Generalized Rejection Sampling Schemes and Applications in Signal Processing (arXiv:0904.1300)](https://ar5iv.labs.arxiv.org/html/0904.1300)
4. [Chapter 6 Rejection sampling, Computational Statistics with R](https://cswr.nrhstat.org/reject-samp)
5. [Direct-sampling Monte Carlo integration, Monte Carlo Techniques (Radboud University)](https://hef.ru.nl/~tbudd/mct/lectures/monte_carlo_integration.html)
6. [29. Monte Carlo Techniques, Particle Data Group](https://pdg.lbl.gov/1999/monterpp.pdf)
7. [Rejection Sampling (TheoremPath)](https://theorempath.com/topics/rejection-sampling)
8. [Monte Carlo Techniques for Bayesian Statistical Inference – A comparative review](https://web.maths.unsw.edu.au/~yanan/monte.pdf)
9. [Intro to Monte Carlo, Part II (Duke Statistics)](https://www2.stat.duke.edu/~rcs46/lecturesModernBayes/601-module5-montecarlo/lecture9-monte-carlo.pdf)
10. [Rejection sampling, AI Wiki](https://aiwiki.ai/wiki/rejection_sampling)
11. [Iterative and Non-iterative Simulation Algorithms (A. Gelman)](https://www.stat.columbia.edu/~gelman/research/published/itsim_interface.pdf)
12. [Acceptance-rejection method, Encyclopedia of Mathematics](https://encyclopediaofmath.org/wiki/Acceptance-rejection_method)
13. [Note on Rejection sampling and exact sampling with the Metropolised Independence Sampler (University of Edinburgh)](https://homepages.inf.ed.ac.uk/imurray2/pub/04rejection_cftp/rejection_cftp.pdf)
14. [Universal Non-Uniform Random Number Sampling in SciPy](https://docs.scipy.org/doc/scipy/tutorial/stats/sampling.html)
15. [Envelope rejection sampling I, MATH5835M Statistical Computing](https://mpaldridge.github.io/math5835/lectures/L15-envelope-1.html)
16. [Lecture Notes III – Importance sampling and rejection sampling (University of Washington)](https://sites.stat.washington.edu/mmp/courses/403/sp25/handouts/l3good-importance.pdf)
17. [Rejection Sampling, Monte Carlo Methods Lecture Notes](https://apurvanakade.github.io/Monte-Carlo-Methods/chapters/sampling/accept_reject.html)
18. [Sampling from Arbitrary Distributions using the Rejection Method (AFIT)](https://www.afit.edu/STAT/statcoe_files/Sampling%20from%20Arbitrary%20Distributions%20using%20the%20Rejection%20Method1.pdf)
19. [Rejection sampling of incoherent inelastic thermal scattering in Monte Carlo neutron transport (OSTI)](https://www.osti.gov/servlets/purl/1393167)
20. [The Rejection Method, Physically Based Rendering, 4th ed.](https://www.pbr-book.org/4ed/Sampling_Algorithms/The_Rejection_Method)
21. [Implicit Variational Rejection Sampling (IVRS), PMLR v337](https://raw.githubusercontent.com/mlresearch/v337/main/assets/xu26e/xu26e.pdf)
22. [Computational Methods in Nonlinear Physics, Ch. 2 (University of Granada)](https://ic1.ugr.es/members/phurtado/wp-content/uploads/sites/3/2017/12/computational-methods-nonlinear-physics-CH2-INT.pdf)
23. [Exhaustive neural importance sampling applied to Monte Carlo event generation, Phys. Rev. D 102, 013003](https://link.aps.org/doi/10.1103/PhysRevD.102.013003)
24. [TransformedDensityRejection, SciPy v1.18.0 Manual](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.sampling.TransformedDensityRejection.html)
25. [Sampling Algorithms, from Survey Sampling to Monte Carlo Methods: Tutorial and Literature Review](https://ar5iv.labs.arxiv.org/html/2011.00901)
26. [Monte Carlo Methods for Detector Simulation (Jefferson Lab)](https://indico.jlab.org/event/828/contributions/13958/attachments/10705/16596/MonteCarloMethods.pdf)
27. [HMC: Reducing the number of rejections by not using leapfrog, Journal of Computational Physics](https://beta.sanzserna.org/wp-content/uploads/2021/01/726_journal-of-comput.pdf)
28. [Geant4 Physics Reference Manual (CERN)](https://geant4-userdoc.web.cern.ch/UsersGuides/PhysicsReferenceManual/fo/PhysicsReferenceManual.pdf)
29. [Adjoint Klein-Nishina Sampling Methods: Efficiency, Speed and Applications (OSTI)](https://www.osti.gov/biblio/1820543)
30. [Diffusion Rejection Sampling (DiffRS), arXiv:2405.17880](https://arxiv.org/html/2405.17880)
31. [Rejection Sampling with Autodifferentiation: Fitting a Hadronization Model, arXiv:2411.02194](https://arxiv.org/html/2411.02194v2)
32. [Constrained Adaptive Rejection Sampling (CARS), PMLR v306](https://proceedings.mlr.press/v306/parys26a.html)

---
*Topic: Encyclopedia › Physical world and mathematics › Physics › Physics methods, practice, and community › Applied and interdisciplinary physics › Computational and simulation physics › Monte Carlo methods in physics › Monte Carlo integration and sampling*

*Initially written Sep 17, 2026 · Reviewed: Sep 30, 2026; Oct 15, 2026 · Edited: Sep 30, 2026; Oct 15, 2026 · Last review: Oct 15, 2026*

*Copyright 2026 EdgeChat AI, a subsidiary of Biostate AI.*

License: Edgepedia Community License 1.0, https://www.edgepedia.org/edgepedia/license
