<random>

Define muchas generadores de números aleatorios.

#include <random>

Comentarios

A Generador de números aleatorios es un objeto que genera una secuencia de valores pseudoaleatorios.Un generador produce los valores distribuidos uniformemente en un intervalo especificado es un motor.Un motor puede combinarse con un distribución, bien pasando el motor como un argumento para la distribución operator() o mediante el uso de un variate_generator Class, para producir valores que se distribuyen de manera que se define mediante la distribución.

La mayoría de los generadores de números aleatorios es plantillas cuyos parámetros de personalización el generador.Las descripciones de los generadores que toman un tipo como argumento utilizan nombres de parámetro de plantilla común para describir las propiedades del tipo que se permiten como tipo de argumento real, como sigue:

  • IntTypeindica un tipo integral con signo o sin signo.

  • UIntTypeindica un tipo integral sin signo.

  • RealTypeindica un tipo de punto flotante.

Un motor es una clase de TR1 o clase de plantilla cuyas instancias actúan como una fuente de números aleatorios uniformemente distribuidos entre un valor mínimo y máximo.Puede ser un motor de un simple motor o un motor compuesto.Cada motor tiene los siguientes miembros:

  • typedef numeric-type result_typees el tipo devuelto por el generador operator().

  • result_type min()Devuelve el valor mínimo que es devuelto por el generador operator().

  • result_type max()Devuelve el valor máximo que es devuelto por el generador operator().Cuando result_type es un tipo integral, éste es el valor máximo que realmente se puede devolver; Cuando result_type es un tipo de punto flotante, éste es el valor más pequeño mayor que todos los valores que se pueden devolver.

  • void seed()El función de las semillas inicializa el motor con valores de inicialización predeterminados.

  • template <class InIt> void seed(InIt& first, InIt last)La función de las semillas de semillas del motor mediante el uso de los valores de tipo unsigned long de la secuencia de half-open es apuntada por [first, last).Si la secuencia no es suficiente para inicializar completamente el motor, la función almacena el valor last en first y produce un objeto de tipo std::invalid_argument.

    [!NOTA]

    Sólo los motores que se conserva a efectos de compatibilidad de TR1 incluyen a este miembro.

  • result_type operator()()Devuelve los valores que se distribuyen uniformemente entre min() y max().

min, max, y result_type no se describen en detalle para los motores que siguen.

A partir de 2010 Visual Studio, cada motor excepto los conserva a efectos de compatibilidad de TR1 también incluye a los siguientes miembros:

  • Un constructor explícito con el argumento result_type x0 que crea un motor que se van a inicializar como si llamando a seed(x0).

  • Un constructor explícito con el argumento seed_seq& seq que crea un motor que se van a inicializar como si llamando a seed(seq).

  • void seed(result_type x0)El motor con el valor de inicialización de semillas de la función de las semillas x0.

  • void seed(seed_seq& seq)La función de las semillas semillas el motor con los valores de las semillas de seq.

  • void discard(unsigned long long count)efectivamente llama a operator() tiempos de recuento y los descartes de cada valoran.

Cada motor tiene un estado que determina la secuencia de valores que se generen las llamadas posteriores a operator().Pueden compararse con los Estados de los dos objetos del mismo tipo mediante el uso de operator== y operator!=.Si los dos estados se comparan como iguales, los objetos generan la misma secuencia de valores.Se puede guardar el estado de un objeto en una secuencia como una secuencia de valores sin signo de 32 bits mediante el uso de la operator<< del objeto.No se cambia el estado si lo guarda.Un estado guardado se puede leer en un objeto del mismo tipo mediante el uso de operator>>.

A simple motor es un motor que genera números aleatorios directamente.Esta biblioteca proporciona una clase cuyos objetos son los motores de simples.También proporciona cuatro plantillas de clase que se pueden crear instancias mediante el uso de los valores que proporcionan los parámetros para el algoritmo que implementan y nueve predefinidos de las instancias de las plantillas de clase.Objetos de estos tipos también son los motores de simples.

A motor compuesto es un motor que obtiene los números aleatorios de uno o más simple motores y genera una secuencia de números aleatorios uniformemente distribuidas mediante el uso de esos valores.Esta biblioteca proporciona plantillas de clase para los dos motores compuestos.

A distribución es una clase de TR1 o clase de plantilla cuyas instancias transforman una secuencia de números aleatorios uniformemente distribuidos obtenidos de un motor en una secuencia de números aleatorios que tienen una distribución en particular.Cada distribución tiene los siguientes miembros:

  • typedef numeric-type input_typees el tipo que se debe devolver el motor pasado a operator().

  • typedef numeric-type result_typees el tipo devuelto por la distribución operator().

  • void reset()descarta los valores almacenados en caché, para que el resultado de la siguiente llamada a operator() no depende de los valores obtenidos desde el motor antes de la llamada.

  • template <class Engine> result_type operator()(Engine& eng)Devuelve los valores que se distribuyen de acuerdo con la definición de la distribución, mediante el uso de eng como un origen de valores aleatorios uniformemente distribuidos y la suma de comprobación paquete de parámetro.

input_type, result_type, y reset no se describen en detalle en las distribuciones que siguen.

A partir de 2010 Visual Studio, cada distribución también tiene:

  • typedef unspecified-type param_typese pasa el conjunto de parámetros de operator() para generar su valor devuelto.

  • A const param& constructor inicializa el paquete del parámetro almacenado de su argumento.

  • param_type param() constObtiene el paquete de parámetro almacenado.

  • void param(const param_type&)establece el paquete de parámetro almacenado en su argumento.

  • template <class Engine> result_type operator()(Engine& eng, param_type par0)Devuelve los valores distribuidos con arreglo a la definición de la distribución, eng a utilizar como origen de los valores aleatorios uniformemente distribuidos y el paquete de parámetro par0.

Un paquete de parámetro es un objeto que almacena todos los parámetros necesarios para una distribución.Contiene:

  • typedef distribution-type distribution_typees el tipo de su distribución.

  • Uno o más constructores que toman el mismo parámetro de listas como la toma de los constructores de distribución.

  • Las mismas funciones de acceso de parámetro que la distribución.

  • Operadores de comparación de igualdad y desigualdad.

La biblioteca puede generarse como una versión comprobada y una versión sin comprobar.La versión comprobada utiliza una macro similar a la de c assert macro para probar las condiciones marcados como Precondition en las descripciones funcionales.Para utilizar la versión comprobada, definir bien la macro _RNG_CHECK o la macro _DEBUG en un valor numérico distinto de cero en todo el código que utiliza la biblioteca.

Bb982398.collapse_all(es-es,VS.110).gifClases

bernoulli_distribution Class

Genera una distribución de Bernoulli.

binomial_distribution Class

Genera una distribución binomial.

cauchy_distribution Class

Genera una distribución de Cauchy.

chi_squared_distribution Class

Genera una distribución chi cuadrado.

discard_block Class

Genera una secuencia aleatoria descartando los valores devueltos por el motor de base.Conserva para compatibilidad de TR1.

discard_block_engine Class

Genera una secuencia aleatoria descartando los valores devueltos por el motor de base.

discrete_distribution Class

Genera una distribución discreta entero.

exponential_distribution Class

Genera una distribución exponencial.

extreme_value_distribution Class

Genera una distribución de valor extrema.

fisher_f_distribution Class

Genera una distribución f de Fisher.

gamma_distribution Class

Genera una distribución gamma.

geometric_distribution Class

Genera una distribución geométrica.

independent_bits_engine Class

Genera una secuencia aleatoria con un número de bits especificado por reempaquetado de bits de los valores devueltos por el motor de base.

linear_congruential Class

Genera una secuencia aleatoria con el algoritmo congruente lineal.Conserva para compatibilidad de TR1.

linear_congruential_engine Class

Genera una secuencia aleatoria con el algoritmo congruente lineal.

lognormal_distribution Class

Genera una distribución normal de registro.

mersenne_twister Class

Genera una secuencia aleatoria con el algoritmo de Mersenne twister.Conserva para compatibilidad de TR1.

mersenne_twister_engine Class

Genera una secuencia aleatoria con el algoritmo de Mersenne twister.

negative_binomial_distribution Class

Genera una distribución binomial negativa.

normal_distribution Class

Genera una distribución normal.

piecewise_constant_distribution Class

Genera un trozos distribución constante.

piecewise_linear_distribution Class

Genera un trozos distribución lineal.

poisson_distribution Class

Genera una distribución de Poisson.

random_device Class

Genera una secuencia aleatoria mediante el uso de un dispositivo externo.

seed_seq Class

Almacena un vector de valores enteros sin signo que puede proporcionar un valor de inicialización aleatorio de un motor de números aleatorios.

shuffle_order_engine Class

Genera una secuencia aleatoria de reordenación de los valores devueltos por el motor de base.

student_t_distribution Class

Genera una distribución t de Student.

subtract_with_carry Class

Genera una secuencia aleatoria mediante el uso de la resta con el algoritmo de transporte.Conserva para compatibilidad de TR1.

subtract_with_carry_01 Class

Genera un aleatorio restar secuencia mediante el uso de la coma flotante con el algoritmo de transporte.Conserva para compatibilidad de TR1.

subtract_with_carry_engine Class

Genera una secuencia aleatoria mediante el uso de la resta con el algoritmo de transporte.

uniform_int Class

Genera una distribución uniforme entero.Conserva para compatibilidad de TR1.

uniform_int_distribution Class

Genera una distribución uniforme entero.

uniform_real Class

Genera una distribución uniforme de punto flotante.Conserva para compatibilidad de TR1.

uniform_real_distribution Class

Genera una distribución uniforme de punto flotante.

variate_generator Class

Ajusta un motor y una distribución.

weibull_distribution Class

Genera una distribución de Weibull.

xor_combine Class

Genera una distribución combinada.

Bb982398.collapse_all(es-es,VS.110).gifTypedefs

default_random_engine TypeDef

Escriba la definición para el motor predeterminado.

knuth_b TypeDef

Escriba la definición de un motor de orden de orden aleatorio.

minstd_rand0 TypeDef

Escriba la definición de un motor congruente lineal.

minstd_rand TypeDef

Escriba la definición de un motor congruente lineal.

mt19937 TypeDef

Escriba la definición de un motor de Mersenne twister.

mt19937_64 TypeDef

Escriba la definición de un motor de Mersenne twister.

ranlux_base_01 TypeDef

Definición de tipo para un punto flotante restar con motor de transporte.

ranlux3 TypeDef

Definición de tipo para un restar con llevar el motor.

ranlux3_01 TypeDef

Definición de tipo para un punto flotante restar con motor de transporte.

ranlux4 TypeDef

Definición de tipo para un restar con llevar el motor.

ranlux4_01 TypeDef

Definición de tipo para un punto flotante restar con motor de transporte.

ranlux24 TypeDef

Escriba la definición de un motor de bloque de descartar.

ranlux24_base TypeDef

Definición de tipo para un restar con llevar el motor.

ranlux48 TypeDef

Escriba la definición de un motor de bloque de descartar.

ranlux48_base TypeDef

Definición de tipo para un restar con llevar el motor.

ranlux64_base_01 TypeDef

Definición de tipo para un punto flotante restar con motor de transporte.

Bb982398.collapse_all(es-es,VS.110).gifOperadores

operator== <random>

Comprueba si el motor en el lado izquierdo del operador es igual al motor en el lado derecho.

operator!= <random>

Comprueba si el motor en el lado izquierdo del operador no es igual que en el lado derecho del motor.

operator<< <random>

Escribe la información de estado en la secuencia.

operator>> <random>

Extrae información de estado de una secuencia.

Bb982398.collapse_all(es-es,VS.110).gifFunciones

generate_canonical

Devuelve un valor de punto flotante de una secuencia aleatoria.