C ++ srand () - Biblioteca padrão C ++

A função srand () em C ++ semeia o gerador de números pseudo-aleatórios usado pela função rand ().

A função srand () em C ++ semeia o gerador de números pseudo-aleatórios usado pela função rand (). A semente para a função rand () é 1 por padrão.

Isso significa que se nenhum srand () for chamado antes de rand (), a função rand () se comporta como se tivesse sido semeada com srand (1).

protótipo srand ()

 void srand (semente int sem sinal);

A função srand () recebe um inteiro sem sinal como parâmetro, o qual é usado como semente pela função rand ().

É definido no arquivo de cabeçalho.

Parâmetros srand ()

  • seed: Um valor de semente do tipo unsigned int

srand () Valor de retorno

  • Nenhum

A função srand () não retorna nenhum valor.

Exemplo 1: Como funciona a função srand ()?

 #include #include using namespace std; int main() ( int random = rand(); /* No srand() calls before rand(), so seed = 1*/ cout << "Seed = 1, Random number = " << random << endl; srand(5); /* Seed = 5 */ random = rand(); cout << "Seed = 5, Random number = " << random << endl; return 0; )

Quando você executa o programa, a saída será:

 Semente = 1, número aleatório = 41 Semente = 5, número aleatório = 54

É uma boa prática propagar o gerador de números pseudo-aleatórios apenas uma vez no início do programa e antes de qualquer chamada de rand (). Ele não deve ser propagado sempre que precisamos gerar um novo conjunto de números.

A prática padrão é usar o resultado de uma chamada para time (0) como semente. A função time () retorna o número de segundos desde 00:00 horas, 1º de janeiro de 1970 UTC (ou seja, o carimbo de data / hora Unix atual). O valor da semente muda com o tempo. Portanto, toda vez que executamos o programa, um novo conjunto de números aleatórios é gerado.

Exemplo 2: função srand () com time ()

 #include #include #include using namespace std; int main() ( srand(time(0)); int random = rand(); cout << "Seed = " << time(0) << endl; cout << "Random number = " << random << endl; return 0; )

Quando você executa o programa, a saída será:

 Semente = 1485583981 Número aleatório = 22589

Artigos interessantes...