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