Compartir a través de


variate_generator Class

Ajusta un motor y una implementación.

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
    El tipo de motor aleatorio.

  • Dist
    El tipo de distribución.

Comentarios

La clase de plantilla describe un objeto que celebre un motor y una distribución y genere valores pasando el objeto ajustado del motor en operator()del objeto de distribution .

El argumento Engine de plantilla puede ser un tipo Eng, Eng*, o Eng&, donde es un motor Eng .El tipo Eng es el tipo subyacente del motor.El objeto correspondiente de Eng con tipo es el objeto subyacente del motor.

La plantilla utiliza un motor ajusta para coincidir con el tipo de los valores generados por el objeto de engine al tipo de configuración requerida por el objeto de distribution .operator() de motor ajusta devuelve los valores de Dist::input_typeescrito, generados como sigue:

si Engine::result_type y Dist::input_type son ambos tipos enteros que devuelve eng(), convertido para escribir Dist::input_type.

si Engine::result_type y Dist::input_type son ambos tipos de punto flotante que devuelve (eng() - eng.min()) / (eng.max() - eng.min()), convertido para escribir Dist::input_type.

si Engine::result_type es un tipo entero y Dist::input_type es un tipo de punto flotante que devuelve (eng() - eng.min()) / (eng.max() - eng.min() + 1), convertido para escribir Dist::input_type.

si Engine::result_type es un tipo de punto flotante y Dist::input_type es entero se escribe devuelve ((eng() - eng.min()) / (eng.max() - eng.min()) * std::numeric_limits<Dist::input_type>::max(), convertido para escribir Dist::input_type.

Requisitos

encabezado: <aleatorio>

espacio de nombres: std

Vea también

Referencia

<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