discrete_distribution::discrete_distribution
Constrói a distribuição.
// default constructor discrete_distribution(); // constructs using a range of weights, [firstW, lastW) template<class InputIterator> discrete_distribution(InputIterator firstW, InputIterator lastW); // constructs using an initializer list for range of weights discrete_distribution(initializer_list<double> weightlist); // constructs using unary operation function template<class UnaryOperation> discrete_distribution(size_t count, double xmin, double xmax, UnaryOperation weightfunc); // constructs from an existing param_type structure explicit discrete_distribution(const param_type& parm);
Parâmetros
firstW
O primeiro iterador na lista do qual a distribuição deve ser construída.lastW
O último iterador na lista do qual a distribuição deve ser construída (não inclusivo, pois os iteradores usam um elemento vazio no final).weightlist
O initializer_list do qual construir a distribuição.count
O número de elementos no intervalo de distribuição. Se count==0, equivalente ao construtor padrão (sempre gera zero).minx
O valor mais baixo no intervalo de distribuição.maxw
O valor mais alto no intervalo de distribuição.weightfunc
O objeto que representa a função de probabilidade para a distribuição. Deve ser possível converter o valor retornado e o parâmetro em double.parm
A estrutura do parâmetro usada para construir a distribuição.
Comentários
O construtor padrão constrói um objeto cujo valor de probabilidade armazenado possui um elemento com valor 1. Isso resultará em uma distribuição que sempre gera um zero.
O construtor do intervalo do iterador,
template<class InputIterator>
discrete_distribution(InputIterator firstW, InputIterator lastW);
constrói um objeto de distribuição com pesos dos iteradores na sequência de intervalo [firstI, lastI).
O construtor da lista do inicializador
discrete_distribution(initializer_list<double> weightlist);
constrói um objeto de distribuição com pesos da lista do inicializador weightlist.
O construtor definido como
template<class UnaryOperation>
discrete_distribution(size_t count, double xmin, double xmax, UnaryOperation funcweight);
constrói um objeto de distribuição cujo valor de probabilidade armazenado é inicializado com base nas seguintes regras. Se count < 1, n = 1 e, como tal, equivale ao construtor padrão, sempre gerando zero. Se count > 0, n = count. Fornecido 0 < d = (maxw - minw)/n, usando d subintervalos uniformes, cada peso é atribuído da seguinte forma: weightk = weightfunc(x), em que x = xmin + k * d + d/2, para k = 0, ..., n - 1.
O construtor definido como
explicit discrete_distribution(const param_type& parm);
constrói um objeto de distribuição usando parm como estrutura de parâmetro armazenada.
Requisitos
Cabeçalho: <random>
Namespace: std