Programação C

Função rand () em linguagem C

Função rand () em linguagem C
Na linguagem C, o rand () função é usada para Pseudo Gerador de Números (PRNG). Os números aleatórios gerados pela função rand () não são verdadeiramente aleatórios. É uma sequência que se repete periodicamente, mas o período é tão grande que podemos ignorá-lo. O rand () função funciona lembrando um valor de semente que é usado para calcular o próximo número aleatório e a próxima nova semente. Neste artigo, vamos discutir em detalhes como os números aleatórios podem ser gerados usando o rand () função. Então vamos começar!

Arquivo de cabeçalho:

stdlib.h

Sintaxe:

int rand (vazio)

Valores de retorno:

Esta função retorna o próximo número pseudo-aleatório da série. O valor do intervalo da série numérica está entre 0 e RAND_MAX. RAND_MAX é uma macro definida em stdlib.h arquivo de cabeçalho, cujo valor é o valor máximo, que pode retornar pela função rand (). O valor de RAND_MAX é maior, mas não inferior a 32767, dependendo das bibliotecas C.

//Exemplo 1.c
#incluir
#incluir
int main ()

int i;
printf ("10 números aleatórios => \ n");
para (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ n");
return 0;


No Exemplo 1.c, chamamos a função rand () em cada iteração do loop for e imprimimos o valor de retorno da função. A sequência de valores da função rand () é a mesma cada vez que executamos o programa. Por padrão, a semente da função rand é definida como 1.

Podemos definir a semente para a função rand usando o srand () função. A semente pode ser definida apenas uma vez e antes da primeira vez rand () chamada de função.

função srand ():

Arquivo de cabeçalho:

stdlib.h

Sintaxe:

int srand (semente int sem sinal)

Argumentos:

Esta função leva 1 argumento

semente: Um valor inteiro usado como semente para uma nova série de números pseudo-aleatórios.

Valores de retorno:

Nenhum

// Exemplo2.c
#incluir
#incluir
#incluir
int main ()

int i;
srand (tempo (0));
printf ("10 números aleatórios => \ n");
para (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ n");
return 0;


No Exemplo 2.c, usamos a função srand () para definir a semente inicial da sequência de números aleatórios gerada pela função rand (). Cada vez que o programa é executado, uma sequência diferente é gerada. Em srand (), função time (0) (declarada em Tempo.h arquivo de cabeçalho) é usado como semente. Esta função de tempo (0) retorna o número de segundos decorridos desde a época (00:00:00, 1º de janeiro de 1970). Isso ainda pode produzir as mesmas sequências se você executar o programa no mesmo segundo.

// Exemplo3.c
#incluir
#incluir
#incluir
int main ()

int i;
srand (tempo (0));
printf ("10 números aleatórios entre 1 e 10 => \ n");
para (i = 0; i<10;i++)

printf ("% d", (rand ()% 10) + 1);

printf ("\ n");
return 0;


No Exemplo 3.c vimos como os números aleatórios podem ser gerados entre 1 e 10.

// Exemplo4.c
#incluir
#incluir
#incluir
int main ()

int i, max, min;
printf ("Insira o valor mínimo =>");
scanf ("% d", & min);
printf ("Insira o valor máximo =>");
scanf ("% d", & max);
if (min> max)

printf ("O valor mínimo é maior que o valor máximo \ n");
return 0;

srand (tempo (0));
printf ("10 números aleatórios entre% d e% d => \ n", min, max);
para (i = 0; i<10;i++)

printf ("% d", (rand ()% (max - min +1)) + min);

printf ("\ n");
return 0;


No Exemplo 4.c tomamos o intervalo do usuário e geramos um número aleatório dentro deste intervalo. A fórmula é: rand ()% (max - min +1)) + min

// Exemplo 5.c
#incluir
#incluir
#incluir
int main ()

int i;
srand (tempo (0));
printf ("10 números aleatórios entre 0.0 e 1.0 => \ n ");
para (i = 0; i<10;i++)

printf ("% f", ((float) rand () / RAND_MAX));

printf ("\ n");
return 0;


No Exemplo 5.c, vimos como podemos gerar números aleatórios entre o flutuante 0.0 e 1.0 A fórmula é: (flutuante) rand () / RAND_MAX)

// Exemplo6.c
#incluir
#incluir
#incluir
int main ()

int i;
float max, min;
printf ("Insira o valor mínimo =>");
scanf ("% f", & min);
printf ("Insira o valor máximo =>");
scanf ("% f", & max);
if (min> max)

printf ("O valor mínimo é maior que o valor máximo \ n");
return 0;

srand (tempo (0));
printf ("10 números aleatórios entre% f e% f => \ n", min, max);
para (i = 0; i<10;i++)

printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min))));

printf ("\ n");
return 0;


No Exemplo 6.c, pegamos o intervalo do usuário e geramos um número aleatório dentro desse intervalo (ambos inclusivos). A fórmula é: min + ((float) rand () / (RAND_MAX / (max - min)))

Conclusão:

Neste artigo, aprendemos como os números aleatórios podem ser gerados usando o rand () e srand () função. Não há garantias sobre a qualidade dos números aleatórios gerados pela função rand, mas é bom o suficiente para uso casual.

AppyMouse na tela Trackpad e ponteiro do mouse para tablets Windows
Os usuários de tablets costumam perder o ponteiro do mouse, especialmente quando costumam usar laptops. Os smartphones e tablets touchscreen vêm com m...
O botão do meio do mouse não funciona no Windows 10
O botão do meio do mouse ajuda você a percorrer longas páginas da web e telas com muitos dados. Se isso parar, você vai acabar usando o teclado para r...
Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...