Introdução ao Gerador de Números Aleatórios em C ++

Muitas vezes em nossa programação, surge uma situação para gerar os números aleatoriamente. Por exemplo, jogo de dados, distribuição de cartas aos jogadores, aplicativos para embaralhar as músicas, etc. Para lidar com essas coisas, devemos ter alguns utilitários. Em C ++, temos dois utilitários para obter essa geração de números aleatórios. Primeiro, examinaremos essas funções, entenderemos suas necessidades. Posteriormente, usá-los-emos em nosso código para obter a funcionalidade. Então, vamos começar com as funções e a biblioteca à qual ela está associada. Neste tópico, vamos aprender sobre o Gerador de números aleatórios em C ++.

Como gerar um número aleatório?

Para conseguir a geração de números aleatórios, o C ++ fornece os utilitários. Todos sabemos que a maioria das funções internas está incluída no arquivo de cabeçalho do C ++. Um desses arquivos de cabeçalho é stdlib.h. É uma biblioteca padrão com muitas funções embutidas, como EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL, etc. Usando essas funções, podemos obter facilmente a solução necessária. Não precisamos escrever uma lógica longa para obter o resultado. Em vez disso, podemos simplesmente chamar uma dessas funções internas de acordo com nossas necessidades. Da mesma forma, para obter uma geração aleatória de números, temos duas funções internas. Eles são aleatórios e aleatórios. Usando os dois juntos, podemos obter o resultado desejado.

Vamos ver o que essas funções são basicamente.

  • randomize () - Esta função é responsável por gerar um número aleatório toda vez que você executa o programa. O resultado será exclusivo sempre que a execução do código. Essa saída exclusiva nos faz confiar mais nessa função. Por exemplo, na primeira vez em que você executar o código, ele gerará a saída como 75, 23, 56, 24, 5, 21, 76, 32, 20 e 37. Da próxima vez, gerará a saída como: 5, 64, 51, 78, 94, 53, 41, 19, 96 e 52. Veremos como será a saída com e sem o uso dessa função, escrevendo o código na próxima seção.
  • rand () - Para gerar os números de 0 a RAND_MAX-1, usaremos esta função. Aqui RAND_MAX significa o intervalo máximo possível do número. Digamos que precisamos gerar números aleatórios no intervalo de 0 a 99, então o valor de RAND_MAX será 100. Com base na necessidade do aplicativo que queremos construir, o valor de RAND_MAX é escolhido. Por exemplo, se for um jogo de dados, o RAND_MAX será 6. Se for um jogo de cartas, o RAND_MAX será 52, etc.

Lembre-se de que ambas as funções são declaradas na biblioteca padrão stdlib.h. Portanto, não esqueça de incluir esse arquivo de cabeçalho no seu código. Agora vamos ver como podemos escrever um programa gerador de números aleatórios simples.

Exemplo com etapas

Agora que temos uma idéia de como a função de gerador de números aleatórios funciona, vamos escrever um programa básico que irá gerar um número aleatório e imprimir a saída.

Vamos escrever o programa passo a passo para obter mais informações sobre o funcionamento.

  • O primeiro passo será incluir os dois arquivos de cabeçalho necessários para o programa. O primeiro se h incluir as funcionalidades de entrada e saída. Este é o arquivo de cabeçalho do fluxo de entrada e saída. O segundo e importante arquivo de cabeçalho é stdlib.h. Como discutido anteriormente, esta biblioteca padrão contém as duas funções, rand e randomize. Portanto, inclua os dois no início do código.

#include
#include
using namespace std;

  • Agora que incluímos os arquivos de cabeçalho, o próximo passo é escrever a função principal para a execução do código. Para definir a função principal na próxima parte.

int main( )
(
)

  • Declare um número para reter e imprimir o valor do número aleatório. O tipo de dados será do tipo int e fornecerá qualquer nome.

int number;

  • Precisamos de um contador de loop para incrementar os valores no loop. Portanto, declare o índice i, do tipo int. O valor máximo de incremento que definiremos no loop for .

int i;

  • Agora vamos escrever um loop for, para imprimir os valores do número gerado aleatoriamente. Para fins de simplicidade, estamos imprimindo 10 números. Portanto, o número máximo de incrementos será 10.

for(i = 1; i <= 10; i++)
(
)

  • Dentro do loop for, escreveremos a função rand. O código abaixo nos diz que qualquer número aleatório gerado será dividido por 100 e o restante será obtido. Isso significa que os números impressos terão um intervalo de 0 a 99. Se você deseja faixas mais altas, o número do módulo será diferente. Ou seja, em vez de 100, podemos colocar 150, 200, 100, etc.

number = rand() % 100;

  • Na última etapa, imprimiremos o número gerado, usando cout.

cout << number << "\t";

  • A saída do código é a seguinte. Por favor, lembre-se de que você pode obter uma saída diferente, desde o seu gerador de números aleatórios.

  • O problema com o código acima é que toda vez que executamos, o código obterá o mesmo conjunto de saída. Para evitar isso, precisamos usar o srand (). Aqui estamos nos referindo à hora nessa instância e gerando os novos valores cada vez que executamos o programa.

Vejamos o código completo com a função srand.

#include
#include
using namespace std;
int main( )
(
int number;
int i;
srand(time(0));
for(i = 1; i <= 10; i++)
(
number = rand() % 100;
cout << number << "\t";
)
)

Duas saídas de execução do código:

Primeira execução:

Segunda execução:

  • Abaixo está o código para gerar 5 números aleatórios dentro de 1000. Altere o valor do número e veja a saída gerada a cada momento. Compare as diferenças de usar sem assinatura e sem usar.

#include
#include
#include
int main ()
(
int i, number;
time_t nTime;
number = 5;
srand((unsigned) time(&nTime));
printf("Random numbers are: \n");
for( i = 0 ; i < number ; i++ )
(
printf("%d\n", rand() % 1000);
)
return(0);
)

Resultado:

Pela 1ª iteração

Para iteração

Conclusão - Gerador de Números Aleatórios em C ++

Neste artigo, aprendemos o que é um gerador de números aleatórios, necessidades de gerador de números aleatórios, funções internas do C ++ para conseguir isso, com e sem o uso da função randomize, significado da biblioteca padrão stdlib.h, instruções passo a passo escrever o código e finalmente comparar as saídas de duas abordagens diferentes.

Artigos recomendados

Este é um guia para o Random Number Generator em C ++. Aqui discutimos como gerar números aleatórios, juntamente com exemplos e etapas. Você também pode consultar o seguinte artigo para saber mais -

  1. Modificadores de acesso em C ++
  2. Gerador de número aleatório em Python
  3. Gerador de número aleatório em R
  4. Variáveis ​​em C ++
  5. Modificadores de acesso em PHP
  6. Gerador de número aleatório em c #
  7. Os 11 principais recursos e vantagens do C ++
  8. Exemplos de funções internas do Python