O gerador de números aleatórios C ++
geradores de números aleatórios cumprir uma série de efeitos. Tudo a partir de jogos para simulações requerem um gerador de números aleatórios para funcionar corretamente. Aleatoriedade encontra o seu caminho no negócio cenários hipotéticos bem. Em suma, você precisa adicionar a saída aleatória para a sua aplicação em muitas situações.
Criando um número aleatório não é difícil. Tudo que você precisa fazer é chamar uma função de número aleatório, conforme mostrado na RandomNumberGenerator exemplo:
#incluir#include #include using namespace std-int main () {// Sempre dar um value.srand semente ((unsigned int) tempo (NULL)) - int RandomValue = rand ()% 12 cout lt; lt; "O número do mês aleatória é:" lt; lt; RandomValue + 1 lt; lt; endl-retorno 0-}
Na verdade, não é um dos geradores de números aleatórios na biblioteca padrão funciona corretamente - imaginem só! Estão todas pseudorandom geradores de números: os números são distribuídos de tal forma que parece que você vê uma sequência aleatória, mas dado o tempo e paciência o suficiente, eventualmente, a sequência se repete.
Na verdade, se você não definir um valor de semente para o seu gerador de números aleatórios, você pode obter sequências previsíveis de números de cada vez. Que aborrecido. Aqui é a saída típica deste exemplo:
O número do mês aleatória é: 7
A primeira linha de código no a Principal() define a semente usando a hora do sistema. Usando a hora do sistema assegura um certo nível de aleatoriedade do valor de partida - e, por conseguinte, um nível de aleatoriedade para a sua aplicação como um todo. Se você comentar esta linha de código, você vê a mesma saída cada vez que você executar o aplicativo.
Os usos exemplo de aplicação rand () para criar o valor aleatório. Quando você toma o módulo do número aleatório, você obter uma saída que está dentro de um intervalo específico - 12 neste caso. O exemplo termina, adicionando 1 ao número aleatório, porque não há qualquer mês 0 no calendário e, em seguida, envia o número do mês para você.
A biblioteca padrão fornece acesso aos dois tipos de geradores de números pseudo-aleatórios. O primeiro tipo exige que você definir um valor de semente. O segundo tipo requer que você forneça um valor de entrada com cada chamada e não requer um valor de semente. Cada gerador produz um tipo de dados diferentes, assim você pode escolher o tipo de número aleatório que obtiver.
A tabela lista os geradores de números aleatórios e diz-lhe que tipo de dados que saída.
Função | Tipo de saída | Semente Necessário? |
---|---|---|
rand | número inteiro | sim |
drand48 | duplo | sim |
erand48 | duplo | não |
lrand48 | longo | sim |
nrand48 | longo | não |
mrand48 | assinado longa | sim |
jrand48 | assinado longa | não |
Agora que você sabe sobre os geradores de números pseudo-aleatórios, olhar para as funções de sementes utilizadas para prepará-los. A tabela a seguir lista as funções de sementes e suas funções gerador de números pseudo-aleatórios associado.
Função | Função Associated Pseudorandom Number Generator |
---|---|
srand | rand |
srand48 | drand48 |
seed48 | mrand48 |
lcong48 | lrand48 |