Um gerador de número aleatório em C ++ é usado para gerar um número aleatório usando um código. É uma ótima maneira de adicionar anonimato e segurança à programação C ++ mundo. A ideia é selecionar aleatoriamente qualquer número de um intervalo especificado e exibi-lo no console. Neste artigo, você explorará tudo sobre um gerador de números aleatórios em C ++, junto com alguns exemplos.

Para que são usados ​​os geradores de números aleatórios?

Considere este exemplo, você está criando um jogo de dados. O jogo será possível se o mesmo número aparecer toda vez que você rolar os dados? Claro que não. É aí que os geradores de números aleatórios entram em cena. Eles podem criar eventos aleatórios e exibir um número aleatório de um intervalo de valores especificado.

Com o elemento de aleatoriedade, você pode criar o código do jogo de dados e muitos outros programas que requerem a geração de números aleatórios. No entanto, uma linguagem de programação ou um computador não pode criar números aleatórios puros. Portanto, C ++ e outras linguagens de programação usam pseudo-aleatório geradores de número.

O que é um gerador de número pseudo-aleatório (PRNG) em C ++?

Um gerador de números pseudo-aleatórios é um simulador de um gerador de números aleatórios em C ++. Isso significa que o gerador de números pseudo-aleatórios permite que você crie uma sensação de aleatoriedade em C ++. É chamado de PRNG porque tudo em computadores é binário que é 0 e 1. Portanto, não é possível gerar eventos aleatórios em computadores.

Quando o gerador de números pseudo-aleatórios usa operações matemáticas, ele garante que o novo valor não seja semelhante ao valor inicial. Com isso, o programa pode gerar números que parecem aleatórios. C ++ vem com um gerador de números pseudo-aleatórios embutido que fornece duas funções: rand () e srand () para a geração de números aleatórios em C ++.

Destaque-se de seus colegas esta avaliação Temporada

Comece a aprender com nossos cursos GRATUITOS Inscreva-se agora

Destaque-se de seus pares nesta temporada de avaliação

Funções Rand e Srand em C ++

Rand e srand são duas funções predefinidas para ajudar com geradores de números aleatórios em C ++. Aqui estão os protótipos, parâmetros, valores de retorno, descrições e exemplos de ambas as funções .

Rand ()

  • Protótipo: int rand ();
  • Parâmetros: Não possui nenhum parâmetro
  • Valor de retorno: retorna um valor inteiro entre 0 e RAND_MAX
  • Descrição: esta função gera e retorna o próximo número aleatório entre 0 e RAND_MAX, um valor constante descrito no arquivo de cabeçalho e definido como 32767
  • Exemplo: usaremos a função rand () em C ++ para gerar um número aleatório neste exemplo

#include

#include

usando namespace std;

int main () {

int randomNumber=rand ();

cout <

}

Resultado:

Random_Number_Generator_C_Plus_Plus_1.

Resultado:

Random_Number_Generator_C_Plus_Plus_1.

Como você pode ver, as saídas são as mesmas para ambas as execuções. Você entenderá o motivo por trás disso posteriormente neste artigo.

Srand ()

  • Protótipo: void srand (unsigned int seed);
  • Parâmetros: um valor inteiro que define a semente (valor inicial) usada pelo gerador de número pseudo-aleatório em C ++
  • Valor de retorno: Nenhum
  • Descrição: a função srand () inicializa o intervalo ou sequência dos números pseudo-aleatórios passando o valor inicial. Quando você fornece o valor da semente usando a função srand (), ele iniciará o gerador de números aleatórios em C ++ a partir desse ponto. Este valor de semente faz com que a saída pareça aleatória. Sem o valor, a saída da função rand () será sempre a mesma sempre que executarmos o programa
  • Exemplo: para este exemplo, você usará a função srand () e passará o tempo do sistema como o valor inicial para gerar saídas diferentes em cada execução

#include

#include

usando namespace std;

int main () {

//Usando a hora do sistema como um valor inicial

srand ((sem sinal) tempo (NULL));

int my_rand=rand ();

//Imprimindo o resultado

cout <

return 0;

}

Resultado:

Random_Number_Generator_C_Plus_Plus_2

Resultado:

Random_Number_Generator_C_Plus_Plus_3.

Como você pode ver nas saídas, o resultado foi diferente nas duas vezes.

Importância do valor da semente no gerador de números aleatórios em C ++

O valor da semente é a chave para obter uma saída diferente cada vez que você executa o gerador de números aleatórios em C ++. Como o gerador de números pseudo-aleatórios realiza operações matemáticas, a saída será a mesma se o valor da semente permanecer o mesmo. Portanto, a saída para ambas as execuções foi a mesma quando você usou apenas a função rand (), sem fornecer um valor inicial.

A solução para obter uma nova saída é usar sementes novas a cada vez. A melhor solução para isso é usar a hora do sistema como o valor inicial. Isso porque o tempo muda a cada segundo. Portanto, você usou o tempo como o valor inicial no exemplo anterior para obter uma saída diferente a cada vez.

Criando o gerador de números aleatórios perfeito em C ++

Agora, você criará um gerador de números aleatórios perfeito em C ++ usando a hora do sistema como valor inicial, assim como fez para a função srand (). Mas, desta vez, você usará as funções srand e rand para criar um conjunto de valores diferentes cada vez que executar o programa.

#include

#include

#include

int main (void) {

//Usando a hora atual do sistema como valor inicial

srand (tempo (0));

para (int x=0; x <3; x ++)

printf (“% d”, rand ());

return 0;

}

Resultado:

Random_Number_Generator_C_Plus_Plus_4.

Resultado:

Random_Number_Generator_C_Plus_Plus_5

Usando o gerador de número aleatório em C ++ para gerar flutuação aleatória

A função rand () retorna uma sequência de valores. Você pode usar o tipo lançar a sequência para gerar um float aleatório ou duplo. O exemplo a seguir demonstra o mesmo, gerando uma flutuação aleatória entre 2.2 e 4.4.

#include

#include

#include

usando namespace std;

int main () {

srand (tempo (0));//Inicializa o gerador de números aleatórios.

cout <<"Número flutuante aleatório gerado entre 2.2 e 4.4:"<

cout <<2.2 + static_cast (rand ())/(static_cast (RAND_MAX/(4.4-2.2)));

return 0;

}

Resultado:

Random_Number_Generator_C_Plus_Plus_6

Como gerar números aleatórios entre 0 e 1 usando um gerador de números aleatórios em C ++?

Você pode usar as funções rand () e srand para gerar números entre 0 e 1. Como os números entre 0 e 1 estarão em decimais, você deve converter o resultado em float ou duplo, assim como fez no exemplo anterior. Se você não fizer o typecast do resultado, ele será convertido em um número inteiro; portanto, a saída será 0. O código a seguir gera um conjunto de três números aleatórios entre 0 e 1.

#include

#include

usando namespace std;

int main () {

cout <<"Números aleatórios entre 0 e 1:"<

srand ((unsigned) time (NULL));

para (int x=0; x <3; x ++)

{

//Digite lançando o resultado para flutuar

cout <<(float) rand ()/RAND_MAX <

}

return 0;

}

Resultado:

Random_Number_Generator_C_Plus_Plus_7.

Como gerar números aleatórios entre 1 e 10?

Você também pode usar um gerador de números aleatórios em C ++ para gerar números entre 1 e 10. Você pode fazer isso usando o operador módulo. O programa a seguir mostra o uso de um operador de módulo para gerar números aleatórios entre 1 e 10.

#include

#include

#include

usando namespace std;

int main () {

//Inicializando o gerador de números aleatórios em C ++

srand (tempo (0));

cout <<"Números aleatórios entre 1 e 10:"<

para (int x=0; x <5; x ++)

cout <<1+ (rand ()% 10) <<"\ n";

return 0;

}

Resultado:

Random_Number_Generator_C_Plus_Plus_8

Como gerar números aleatórios em C ++ dentro de um intervalo

Semelhante a 1 e 10, você pode gerar números aleatórios em qualquer intervalo usando o operador módulo. Por exemplo, para gerar números entre 1 e 100, você pode escrever int random=1+ (rand ()% 100). Você pode representar a sintaxe geral da equação como:

int random=offset + (rand ()% range);

Na sintaxe acima:

  • deslocamento: define o ponto inicial do intervalo
  • intervalo: o número de valores possíveis entre o início e o fim do intervalo com ambos os números inclusivos. Por exemplo, para o intervalo entre 100 e 300, o deslocamento será 100 e o intervalo será 201.

Agora, veja um exemplo para gerar números aleatórios entre 100 e 300, conforme mencionado acima. Você usará o for loop em C ++ para gerar dez números aleatórios entre o intervalo fornecido.

#include

#include

usando namespace std;

int main () {

srand ((sem sinal) tempo (NULL));

//Usando o loop for

para (int x=0; x <10; x ++) {

//Desloque 100 e alcance 201 para gerar números aleatórios entre 100 e 300

int random=100 + (rand ()% 201);

cout <

}

return 1;

}

Resultado:

Random_Number_Generator_C_Plus_Plus_9

Curso Full Stack Web Developer

Para se tornar um especialista em MEAN Stack Ver Curso

Full Stack Web Developer Course

Aplicações de geradores de números aleatórios em C ++

Você deve estar se perguntando por que precisa gerar números aleatórios, exceto por um momento ao criar jogos de dados? Mas existem várias aplicações de geradores de números aleatórios. Alguns dos aplicativos principais são:

Jogos

Como você já viu no início do artigo, geradores de números aleatórios são vitais em alguns jogos, como o jogo de dados. Além dos jogos de dados, você também pode usá-lo em outros jogos que requeiram aleatoriedade. Por exemplo, você pode usá-lo para criar jogos de cartas para distribuir cartas aleatórias ou jogos de quiz para fazer perguntas exclusivas todas as vezes.

Criptografia

Além dos jogos, você também pode usar o gerador de números aleatórios C ++ para fins de segurança. A aleatoriedade e o anonimato são considerados cruciais na criptografia e em outras formas de segurança. Você pode usar geradores de números aleatórios para criar chaves e nonces.

Algoritmos Randomizados

Aleatorizar algoritmos é adicionar o elemento de aleatoriedade a algoritmos já definidos. Isso é feito para aumentar o desempenho e obter melhores resultados ao negociar a probabilidade de sucesso.

Qual é a diferença entre Rand () e Srand ()?

Existem muitas diferenças entre as funções rand () e srand (). A tabela ilustrada abaixo define algumas das diferenças significativas entre os dois.

rand ()

srand ()

Função para gerar um número aleatório

Semeia o gerador de números aleatórios em C ++

Chamado quantas vezes você quiser para gerar os números aleatórios

Chamado apenas uma vez para propagar o gerador de número aleatório

Não aceita um argumento

Aceita um valor inteiro que é usado como semente

Retorna uma sequência de números aleatórios

Não retorna nada

Avance sua carreira como desenvolvedor MEAN stack com o Desenvolvedor Web Full Stack-Programa MEAN Stack Master . Inscreva-se agora!

Concluindo

Neste artigo, você aprendeu sobre geradores de números aleatórios em C ++. Agora você pode usar as funções rand () e srand () para gerar valores aleatórios e colocá-los em uso em vários aplicativos, como jogos, criptografia e algoritmos aleatórios. Agora que você sabe tudo sobre o gerador de números aleatórios C ++, é hora de aprender sobre os outros fundamentos da programação C ++.

Você pode consultar o C ++ Tutorial para iniciantes do Simplilearn. O tutorial cobre conceitos básicos como loop for e array para obter uma boa compreender os fundamentos. Se quiser aprimorar suas habilidades de programação, você pode acessar nosso plataforma SkillUp . A plataforma oferece vários cursos gratuitos para ajudá-lo a aprender, crescer e se familiarizar com várias linguagens de desenvolvimento, incluindo C ++.

Você também pode optar pelo Full-Stack Web Curso de Desenvolvimento se você deseja seguir uma carreira na área de desenvolvimento. O curso oferece várias horas de materiais de aprendizagem individualizados e aprendizagem aplicada. Você também receberá um certificado ao concluir o curso para aumentar as chances de conseguir uma proposta de emprego lucrativa. Para simplificar, o curso é adequado para ajudá-lo a se destacar no campo de desenvolvimento web.

Tem alguma pergunta para nós? Deixe-os na seção de comentários e nossos especialistas responderão para você assim que possível!

Categories: Wordpress