função rand na linguagem C

função rand na linguagem C
Na linguagem C, o rand () A função é usada para Gerador de número pseudo (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 () A 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-aleatom na série. O valor do alcance 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 por rand () função. 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");
retornar 0;


No exemplo1.C, chamamos a função rand () em cada iteração de loop e imprimimos o valor de retorno da função. A sequência de valor 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 (sem sinal int semente)

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");
retornar 0;


No exemplo2.C, usamos a função srand () para definir a semente inicial da sequência de números aleatórios gerada por rand () função. Cada vez que o programa é executado, uma sequência diferente é gerada. Em srand (), tempo (0) função (declarada em tempo.h arquivo de cabeçalho) é usado como semente. Desta vez (0) a função retorna o número de segundos decorridos desde a época (00:00:00, 1 de janeiro de 1970). Isso ainda pode produzir as mesmas seqüê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");
retornar 0;


No exemplo3.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 ("Digite min Value =>");
scanf ("%d", & min);
printf ("Enter Max Value =>");
scanf ("%d", & max);
se (min> max)

printf ("O valor mínimo é maior que o valor máximo \ n");
retornar 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 () % (máx - min +1)) + min);

printf ("\ n");
retornar 0;


No exemplo4.c pegamos o intervalo do usuário e geramos um número aleatório dentro desse intervalo. A fórmula é: rand () % (máx - min +1)) + min

// Exemplo5.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");
retornar 0;


No exemplo5.C, vimos como podemos gerar números aleatórios entre flutuação 0.0 e 1.0 A fórmula é: (float) rand () /rand_max)

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

int i;
Float Max, min;
printf ("Digite min Value =>");
scanf ("%f", & min);
printf ("Enter Max Value =>");
scanf ("%f", & max);
se (min> max)

printf ("O valor mínimo é maior que o valor máximo \ n");
retornar 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");
retornar 0;


No exemplo6.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.