std::discrete_distribution<IntType>::discrete_distribution
Von cppreference.com
< cpp | numeric | random | discrete distribution
| discrete_distribution(); |
(1) | (seit C++11) |
| template< class InputIt > discrete_distribution( InputIt first, InputIt last ); |
(2) | (seit C++11) |
| discrete_distribution( std::initializer_list<double> weights ); |
(3) | (seit C++11) |
| template< class UnaryOperation > discrete_distribution( std::size_t count, double xmin, double xmax, |
(4) | (seit C++11) |
| explicit discrete_distribution( const param_type& params ); |
(5) | (seit C++11) |
Konstruiert ein neues Verteilungsobjekt.
1) Konstruktor mit Standardwerten. Konstruiert die Verteilung mit einem einzelnen Gewicht p = {1}. Diese Verteilung wird immer 0 generieren.
2) Konstruiert die Verteilung mit Gewichten im Bereich
[first, last). Wenn first == last, sind die Auswirkungen dieselben wie beim Standardkonstruktor.3) Konstruiert die Verteilung mit Gewichten in weights. Ruft effektiv discrete_distribution(weights.begin(), weights.end()) auf.
4) Konstruiert die Verteilung mit count Gewichten, die mit der Funktion unary_op generiert werden. Jedes der Gewichte ist gleich wi = unary_op(xmin + δ(i + 0.5)), wobei δ =
und i ∈ {0, ..., count − 1}. xmin und xmax müssen so sein, dass δ > 0. Wenn count == 0 sind die Auswirkungen dieselben wie beim Standardkonstruktor.
| (xmax − xmin) |
| count |
5) Konstruiert die Verteilung mit params als Verteilungsparameter.
[edit] Parameter
| first, last | - | der Bereich der Elemente, die die als Gewichte zu verwendenden Zahlen definieren. Der Typ der Elemente, auf die sich InputIterator bezieht, muss in double konvertierbar sein |
| weights | - | Initialisierungsliste mit den Gewichten |
| unary_op | - | unäre Operation, die angewendet wird. Die Signatur der Funktion sollte äquivalent zu folgender sein: Ret fun(const Type &a); Die Signatur muss nicht const & haben. |
| params | - | die Menge der Verteilungsparameter |
| Typanforderungen | ||
-InputIt muss die Anforderungen von LegacyInputIterator erfüllen. | ||