A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/random below:

header

<random>

Random

This header introduces random number generation facilities.

This library allows to produce random numbers using combinations of generators and distributions:



Distribution objects generate random numbers by means of their operator() member, which takes a generator object as argument:
1
2
3
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1,6);
int dice_roll = distribution(generator);  // generates number in the range 1..6 

For repeated uses, both can be bound together:
1
2
auto dice = std::bind ( distribution, generator );
int wisdom = dice()+dice()+dice();

Except for random_device, all standard generators defined in the library are random number engines, which are a kind of generators that use a particular algorithm to generate series of pseudo-random numbers. These algorithms need a seed as a source of randomness, and this seed can either be a single value or an object with a very specific generate() member function (see seed_seq for more info). A typical source of randomness for trivial tasks is time, such as the information provided by time or system_clock::now (for a typical example, see uniform_int_distribution::operator()).

As an alternative, trivial random numbers can also be generated using cstdlib's functions rand and srand.



Generators Pseudo-random number engines (templates) Generators that use an algorithm to generate pseudo-random numbers based on an initial seed:
linear_congruential_engine
Linear congruential random number engine (class template)
mersenne_twister_engine
Mersenne twister random number engine (class template)
subtract_with_carry_engine
Subtract-with-carry random number engine (class template)

Engine adaptors They adapt an engine, modifying the way numbers are generated with it:
discard_block_engine
Discard-block random number engine adaptor (class template)
independent_bits_engine
Independent-bits random number engine adaptor (class template)
shuffle_order_engine
Shuffle-order random number engine adaptor (class template)

Pseudo-random number engines (instantiations) Particular instantiations of generator engines and adaptors:
default_random_engine
Default random engine (class)
minstd_rand
Minimal Standard minstd_rand generator (class)
minstd_rand0
Minimal Standard minstd_rand0 generator (class)
mt19937
Mersenne Twister 19937 generator (class)
mt19937_64
Mersenne Twister 19937 generator (64 bit) (class)
ranlux24_base
Ranlux 24 base generator (class)
ranlux48_base
Ranlux 48 base generator (class)
ranlux24
Ranlux 24 generator (class)
ranlux48
Ranlux 48 generator (class)
knuth_b
Knuth-B generator (class)

Random number generators Non-deterministic random number generator:
random_device
True random number generator (class)

Distributions Uniform:
uniform_int_distribution
Uniform discrete distribution (class template)
uniform_real_distribution
Uniform real distribution (class template)

Related to Bernoulli (yes/no) trials:
bernoulli_distribution
Bernoulli distribution (class)
binomial_distribution
Binomial distribution (class template)
geometric_distribution
Geometric distribution (class template)
negative_binomial_distribution
Negative binomial distribution (class template)

Rate-based distributions:
poisson_distribution
Poisson distribution (class template)
exponential_distribution
Exponential distribution (class template)
gamma_distribution
Gamma distribution (class template)
weibull_distribution
Weibull distribution (class template)
extreme_value_distribution
Extreme Value distribution (class template)

Related to Normal distribution:
normal_distribution
Normal distribution (class template)
lognormal_distribution
Lognormal distribution (class template)
chi_squared_distribution
Chi-squared distribution (class template)
cauchy_distribution
Cauchy distribution (class template)
fisher_f_distribution
Fisher F-distribution (class template)
student_t_distribution
Student T-Distribution (class template)

Piecewise distributions:
discrete_distribution
Discrete distribution (class template)
piecewise_constant_distribution
Piecewise constant distribution (class template)
piecewise_linear_distribution
Piecewise linear distribution (class template)

Other
seed_seq
Seed sequence (class)
generate_canonical
Generate canonical numbers (function template)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4