Partilhar via


variate_generator Class

Envolve um mecanismo distribuição e uma.

template<class Engine, class Dist>
    class variate_generator {
public:
    typedef Engine engine_type;
    typedef engine-value-type engine_value_type;
    typedef Dist distribution_type;
    typedef typename Dist::result_type result_type;
    variate_generator(engine_type eng0, distribution_type dist0);
    result_type operator()();
    template<class T>
        result_type operator()(T value);
    engine_value_type& engine();
    const engine_value_type& engine() const;
    distribution_type& distribution();
    const distribution_type& distribution() const;
    result_type min() const;
    result_type max() const;
private:
    Engine eng;             // exposition only
    Dist dist;              // exposition only
    };

Parâmetros

  • Engine
    O tipo do mecanismo aleatório.

  • Dist
    O tipo de distribuição.

Comentários

A classe de modelo descreve um objeto que contém um mecanismo e distribuição e uma produz valores passando o objeto set da operator()mecanismo de objeto de distribution .

O argumento Engine de modelo pode ser um tipo Eng, Eng*, ou Eng&, onde Eng é um mecanismo.O tipo Eng é o tipo subjacente do mecanismo.O objeto de tipo correspondente Eng o é o objeto subjacente do mecanismo.

O modelo usa um mecanismo definido para corresponder ao tipo dos valores gerados pelo objeto de engine para o tipo de valores necessários para o objeto de distribution .operator() set do mecanismo retorna os valores do tipo Dist::input_typegerados, como segue:

se Engine::result_type e Dist::input_type são ambos os tipos integrais que retorna eng(), convertido para o tipo Dist::input_type.

se Engine::result_type e Dist::input_type são ambos os tipos de ponto flutuante retorna (eng() - eng.min()) / (eng.max() - eng.min()), convertido para o tipo Dist::input_type.

se Engine::result_type é um tipo integral e Dist::input_type é um tipo de ponto flutuante retorna (eng() - eng.min()) / (eng.max() - eng.min() + 1), convertido para o tipo Dist::input_type.

se Engine::result_type é um tipo de ponto flutuante e Dist::input_type é um tipo integral que retorna o ((eng() - eng.min()) / (eng.max() - eng.min()) * std::numeric_limits<Dist::input_type>::max(), convertido para o tipo Dist::input_type.

Requisitos

Cabeçalho: <random>

namespace: STD

Consulte também

Referência

<random>

variate_generator::distribution

variate_generator::distribution_type

variate_generator::engine

variate_generator::engine_type

variate_generator::engine_value_type

variate_generator::operator()

variate_generator::variate_generator