29 Numerics library [numerics]

29.5 Random number generation [rand]

29.5.2 Header <random> synopsis [rand.synopsis]

#include <initializer_list> / see [initializer.list.syn] namespace std { / [rand.req.urng], uniform random bit generator requirements template<class G> concept uniform_random_bit_generator = see below; / freestanding / [rand.eng.lcong], class template linear_congruential_engine template<class UIntType, UIntType a, UIntType c, UIntType m> class linear_congruential_engine; / partially freestanding / [rand.eng.mers], class template mersenne_twister_engine template<class UIntType, size_t w, size_t n, size_t m, size_t r, UIntType a, size_t u, UIntType d, size_t s, UIntType b, size_t t, UIntType c, size_t l, UIntType f> class mersenne_twister_engine; / [rand.eng.sub], class template subtract_with_carry_engine template<class UIntType, size_t w, size_t s, size_t r> class subtract_with_carry_engine; / partially freestanding / [rand.adapt.disc], class template discard_block_engine template<class Engine, size_t p, size_t r> class discard_block_engine; / partially freestanding / [rand.adapt.ibits], class template independent_bits_engine template<class Engine, size_t w, class UIntType> class independent_bits_engine; / partially freestanding / [rand.adapt.shuf], class template shuffle_order_engine template<class Engine, size_t k> class shuffle_order_engine; / [rand.eng.philox], class template philox_engine template<class UIntType, size_t w, size_t n, size_t r, UIntType.. consts> class philox_engine; / partially freestanding / [rand.predef], engines and engine adaptors with predefined parameters using minstd_rand0 = see below; / freestanding using minstd_rand = see below; / freestanding using mt19937 = see below; / freestanding using mt19937_64 = see below; / freestanding using ranlux24_base = see below; / freestanding using ranlux48_base = see below; / freestanding using ranlux24 = see below; / freestanding using ranlux48 = see below; / freestanding using knuth_b = see below; using philox4x32 = see below; / freestanding using philox4x64 = see below; / freestanding using default_random_engine = see below; / [rand.device], class random_device class random_device; / [rand.util.seedseq], class seed_seq class seed_seq; / [rand.util.canonical], function template generate_canonical template<class RealType, size_t digits, class URBG> RealType generate_canonical(URBG& g); namespace ranges { / [alg.rand.generate], generate_random template<class R, class G> requires output_range<R, invoke_result_t<G&> && uniform_random_bit_generator<remove_cvref_t<G>> constexpr borrowed_iterator_t<R> generate_random(R&& r, G&& g); template<class G, output_iterator<invoke_result_t<G&> O, sentinel_for<O> S> requires uniform_random_bit_generator<remove_cvref_t<G>> constexpr O generate_random(O first, S last, G&& g); template<class R, class G, class D> requires output_range<R, invoke_result_t<D&, G&> && invocable<D&, G&> && uniform_random_bit_generator<remove_cvref_t<G>> && is_arithmetic_v<invoke_result_t<D&, G&> constexpr borrowed_iterator_t<R> generate_random(R&& r, G&& g, D&& d); template<class G, class D, output_iterator<invoke_result_t<D&, G&> O, sentinel_for<O> S> requires invocable<D&, G&> && uniform_random_bit_generator<remove_cvref_t<G>> && is_arithmetic_v<invoke_result_t<D&, G&> constexpr O generate_random(O first, S last, G&& g, D&& d); } / [rand.dist.uni.int], class template uniform_int_distribution template<class IntType = int> class uniform_int_distribution; / partially freestanding / [rand.dist.uni.real], class template uniform_real_distribution template<class RealType = double> class uniform_real_distribution; / [rand.dist.bern.bernoulli], class bernoulli_distribution class bernoulli_distribution; / [rand.dist.bern.bin], class template binomial_distribution template<class IntType = int> class binomial_distribution; / [rand.dist.bern.geo], class template geometric_distribution template<class IntType = int> class geometric_distribution; / [rand.dist.bern.negbin], class template negative_binomial_distribution template<class IntType = int> class negative_binomial_distribution; / [rand.dist.pois.poisson], class template poisson_distribution template<class IntType = int> class poisson_distribution; / [rand.dist.pois.exp], class template exponential_distribution template<class RealType = double> class exponential_distribution; / [rand.dist.pois.gamma], class template gamma_distribution template<class RealType = double> class gamma_distribution; / [rand.dist.pois.weibull], class template weibull_distribution template<class RealType = double> class weibull_distribution; / [rand.dist.pois.extreme], class template extreme_value_distribution template<class RealType = double> class extreme_value_distribution; / [rand.dist.norm.normal], class template normal_distribution template<class RealType = double> class normal_distribution; / [rand.dist.norm.lognormal], class template lognormal_distribution template<class RealType = double> class lognormal_distribution; / [rand.dist.norm.chisq], class template chi_squared_distribution template<class RealType = double> class chi_squared_distribution; / [rand.dist.norm.cauchy], class template cauchy_distribution template<class RealType = double> class cauchy_distribution; / [rand.dist.norm.f], class template fisher_f_distribution template<class RealType = double> class fisher_f_distribution; / [rand.dist.norm.t], class template student_t_distribution template<class RealType = double> class student_t_distribution; / [rand.dist.samp.discrete], class template discrete_distribution template<class IntType = int> class discrete_distribution; / [rand.dist.samp.pconst], class template piecewise_constant_distribution template<class RealType = double> class piecewise_constant_distribution; / [rand.dist.samp.plinear], class template piecewise_linear_distribution template<class RealType = double> class piecewise_linear_distribution; }

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant