<random>
Define vários geradores de números aleatórios.
#include <random>
Comentários
A gerador de números aleatórios é um objeto que produz uma seqüência de valores pseudo-aleatória.Um gerador produz valores uniformemente distribuídos em um intervalo especificado é um engine.Um mecanismo pode ser combinado com um distribuição, ou passando o mecanismo como um argumento para a distribuição operator() ou usando um variate_generator Class, para produzir valores que são distribuídas de maneira que é definida pela distribuição.
A maioria dos geradores de números aleatórios é modelos cujos parâmetros de personalizar o gerador.As descrições dos geradores de levar um tipo como um argumento usam nomes de parâmetro de modelo comuns para descrever as propriedades do tipo permitidas como um tipo de argumento real, como segue:
IntTypeindica um tipo integral assinado ou não assinado.
UIntTypeindica um tipo integral não assinado.
RealTypeindica um tipo de ponto flutuante.
Um mecanismo é uma classe de modelo ou TR1 classe cujas instâncias atuam como origem de números aleatórios distribuídos uniformemente entre um valor mínimo e máximo.Um mecanismo pode ser uma mecanismo simple ou mecanismo composto.Cada mecanismo tem os seguintes membros:
typedef numeric-type result_typeé o tipo retornado pelo gerador operator().
result_type min()Retorna o valor mínimo é retornado pelo gerador operator().
result_type max()Retorna o valor máximo é retornado pelo gerador operator().Quando result_type é um tipo integral é o valor máximo que pode realmente ser retornado; Quando result_type é um tipo de ponto flutuante, este é o menor valor maior do que todos os valores que podem ser retornados.
void seed()O função semente inicializa o mecanismo com valores padrão de propagação.
template <class InIt> void seed(InIt& first, InIt last)A função de propagação propaga o mecanismo usando valores do tipo unsigned long da seqüência de half open é apontada por [first, last).Se a seqüência não for longa o suficiente para inicializar totalmente o mecanismo, a função armazena o valor last em first e lança um objeto do tipo std::invalid_argument.
Observação Apenas os mecanismos mantidos para compatibilidade de TR1 incluir esse membro.
result_type operator()()Retorna os valores são distribuídos uniformemente entre min() e max().
min, max, e result_type não são descritos em detalhes para os mecanismos que seguem.
Começando com Visual Studio 2010, cada mecanismo, exceto aqueles mantidos para compatibilidade de TR1 também inclui os seguintes membros:
Um construtor com argumento explícito result_type x0 que cria um mecanismo propagado como se chamando seed(x0).
Um construtor com argumento explícito seed_seq& seq que cria um mecanismo propagado como se chamando seed(seq).
void seed(result_type x0)A função de propagação propaga o mecanismo com valor semente x0.
void seed(seed_seq& seq)A função de propagação propaga o mecanismo com valores de propagação do seq.
void discard(unsigned long long count)efetivamente chama operator() tempos de contagem e descarta cada valor.
Cada mecanismo tem um estado que determina a seqüência de valores que serão gerados por chamadas subseqüentes para operator().Os estados de dois objetos do mesmo tipo podem ser comparados usando operator== e operator!=.Se os dois estados são comparados como iguais, os objetos irá gerar a mesma seqüência de valores.O estado de um objeto pode ser salvos em um fluxo como uma seqüência de valores não assinados de 32 bits usando o operator<< do objeto.O estado não é alterado, salvando-o.Um estado salvo pode ser lido em um objeto do mesmo tipo usando operator>>.
A mecanismo simple é um mecanismo que gera números aleatórios diretamente.Esta biblioteca fornece uma classe cujos objetos são mecanismos simples.Ele também oferece quatro modelos de classe que podem ser instanciados usando valores fornecem parâmetros para o algoritmo de implementação e nove predefinidas instâncias desses modelos de classe.Objetos desses tipos também são mecanismos simples.
A mecanismo composto é um mecanismo que obtém números aleatórios de um ou mais simples mecanismos e gera um fluxo de números aleatórios uniformemente distribuídos usando esses valores.Esta biblioteca fornece modelos de classe para dois mecanismos compostos.
A distribuição é uma classe de TR1 ou classe de modelo cujas instâncias transform um fluxo de números aleatórios uniformemente distribuídos obtidos de um mecanismo em um fluxo de números aleatórios que têm uma distribuição específica.Cada distribuição possui os seguintes membros:
typedef numeric-type input_typeé o tipo que deve ser retornado pelo mecanismo do passado para operator().
typedef numeric-type result_typeé o tipo retornado pela distribuição operator().
void reset()descarta quaisquer valores armazenados em cache para que o resultado da próxima chamada de operator() não depende dos valores obtidos do mecanismo antes da chamada.
template <class Engine> result_type operator()(Engine& eng)Retorna os valores são distribuídos de acordo com a definição da distribuição, usando eng como uma fonte de valores aleatórios uniformemente distribuídos e o armazenado pacote de parâmetro.
input_type, result_type, e reset não são descritos em detalhes para as distribuições que seguem.
Começando com Visual Studio 2010, cada distribuição também tem:
typedef unspecified-type param_typeo pacote de parâmetros é passado para operator() para gerar o valor de retorno.
A const param& construtor inicializa o pacote de parâmetro armazenados do seu argumento.
param_type param() constObtém o pacote de parâmetro armazenados.
void param(const param_type&)Define o pacote de parâmetro armazenados de seu argumento.
template <class Engine> result_type operator()(Engine& eng, param_type par0)Retorna valores distribuídos de acordo com definição da distribuição, usando eng como uma origem de valores aleatórios uniformemente distribuídos e o pacote do parâmetro par0.
Um pacote de parâmetro é um objeto que armazena todos os parâmetros necessários para uma distribuição.Contém:
typedef distribution-type distribution_typeé o tipo de sua distribuição.
Um ou mais construtores que utilizam o mesmo parâmetro de lista como o take de construtores de distribuição.
O mesmo parâmetro de acesso funciona como a distribuição.
Operadores de comparação de igualdade e desigualdade.
A biblioteca pode ser construída como uma versão verificada e uma versão não-verificada.A versão verificada usa uma macro similar do c assert macro para testar as condições marcadas como Precondition nas descrições funcionais.Para usar a versão verificada, defina tanto a macro _RNG_CHECK ou a macro _DEBUG para um valor de numérico de zero em todo o código que usa a biblioteca.
Classes
Gera uma distribuição de Bernoulli. |
|
Gera uma distribuição binomial. |
|
Gera uma distribuição de Cauchy. |
|
Gera uma distribuição qui-quadrada. |
|
Gera uma seqüência aleatória descartando valores retornados pelo seu mecanismo de base.Mantido para compatibilidade de TR1. |
|
Gera uma seqüência aleatória descartando valores retornados pelo seu mecanismo de base. |
|
Gera uma distribuição discreta inteiro. |
|
Gera uma distribuição exponencial. |
|
Gera uma distribuição do valor extremo. |
|
Gera uma distribuição f de Fisher. |
|
Gera uma distribuição gama. |
|
Gera uma distribuição geométrica. |
|
Gera uma seqüência aleatória com um número de bits especificado pelo repacking bits de valores retornados pelo seu mecanismo de base. |
|
Gera uma seqüência aleatória usando o algoritmo congruential linear.Mantido para compatibilidade de TR1. |
|
Gera uma seqüência aleatória usando o algoritmo congruential linear. |
|
Gera uma distribuição log-normal. |
|
Gera uma seqüência aleatória usando o algoritmo de twister da Mersenne.Mantido para compatibilidade de TR1. |
|
Gera uma seqüência aleatória usando o algoritmo de twister da Mersenne. |
|
Gera uma distribuição binomial negativa. |
|
Gera uma distribuição normal. |
|
Gera um piecewise distribuição constante. |
|
Gera um piecewise distribuição linear. |
|
Gera uma distribuição Poisson. |
|
Gera uma seqüência aleatória usando um dispositivo externo. |
|
Armazena um vetor de inteiros não assinados pode fornecer uma semente aleatório para um mecanismo de número aleatório. |
|
Gera uma seqüência aleatória reordenar os valores retornados de seu mecanismo de base. |
|
Gera uma distribuição t de Student. |
|
Gera uma seqüência aleatória, usando a subtração com algoritmo de balcão.Mantido para compatibilidade de TR1. |
|
Gera um aleatório seqüência usando o ponto flutuante subtrair com algoritmo de balcão.Mantido para compatibilidade de TR1. |
|
Gera uma seqüência aleatória, usando a subtração com algoritmo de balcão. |
|
Gera uma distribuição uniforme inteiro.Mantido para compatibilidade de TR1. |
|
Gera uma distribuição uniforme inteiro. |
|
Gera uma distribuição uniforme de ponto flutuante.Mantido para compatibilidade de TR1. |
|
Gera uma distribuição uniforme de ponto flutuante. |
|
Quebra um mecanismo e uma distribuição. |
|
Gera uma distribuição Weibull. |
|
Gera uma distribuição combinada. |
Typedefs
Digite a definição para o mecanismo padrão. |
|
Digite a definição para um mecanismo de ordem aleatória. |
|
Digite a definição para um mecanismo congruential linear. |
|
Digite a definição para um mecanismo congruential linear. |
|
Digite a definição para um mecanismo de twister da Mersenne. |
|
Digite a definição para um mecanismo de twister da Mersenne. |
|
Definição de tipo para um ponto flutuante subtrair com mecanismo de balcão. |
|
Definição de tipo para uma subtração com executar o mecanismo. |
|
Definição de tipo para um ponto flutuante subtrair com mecanismo de balcão. |
|
Definição de tipo para uma subtração com executar o mecanismo. |
|
Definição de tipo para um ponto flutuante subtrair com mecanismo de balcão. |
|
Digite a definição para um mecanismo de bloqueio de descarte. |
|
Definição de tipo para uma subtração com executar o mecanismo. |
|
Digite a definição para um mecanismo de bloqueio de descarte. |
|
Definição de tipo para uma subtração com executar o mecanismo. |
|
Definição de tipo para um ponto flutuante subtrair com mecanismo de balcão. |
Operadores
Testes se o mecanismo do lado esquerdo do operador é igual ao mecanismo do lado direito. |
|
Testes se o mecanismo do lado esquerdo do operador não é igual a do motor do lado direito. |
|
Grava informações de estado no fluxo. |
|
Extrai informações de estado de um fluxo. |
Funções
Retorna um valor de ponto flutuante de uma seqüência aleatória. |