Exemplo:
main() { int i, aleatorio; for(i = 0; i < 10; i++) { aleatorio = rand(); printf("%d\n",aleatorio); } system("pause"); }Observe que a sintaxe é bem simples. Mas por que a cada vez que o laço se repete devemos aplicar o valor da função rand a nossa variável?
A função rand utiliza um número como "semente" para gerar os números aleatórios e esse número só mudará quando a função for chamada novamente.
O resultado do código que temos acima foi:
Perceba que sempre que abrimos nosso programa, os números gerados são o mesmos. Então não temos, ainda, números realmente aleatórios.
E se mudarmos nossa variável para receber o valor da função rand apenas um vez, dessa forma:
main() { int i, aleatorio = rand(); for(i = 0; i < 10; i++) printf("%d\n",aleatorio); system("pause"); }Nossa variável terá sempre o mesmo valor. E esse será nosso resultado:
Para que você gere números que realmente serão imprevisíveis com a função rand, devemos usar no mesmo programa outra função chamada srand (seed randomic) usada para que o número usado como semente seja sempre diferente. O uso mais comum da função srand é junto com a função time da biblioteca <time.h>, que busca a data/hora do seu computador. Como o horário da execução de cada parte do seu programa nunca será o mesmo, tornaremos a semente imprevisível:
#includeO meu resultado foi:
Observe agora que a cada vez que executamos nosso programa um resultado diferente é fornecido.
E como colocar um intervalo especifico para os nossos números? Pois os números gerados pela função rand vão de 0 à 32767.
Podemos utilizar o operador "%" (mod) que nos retorna o resto de uma divisão. Se queremos, por exemplo, simular a jogada de um dado, deveremos limitar nossos números aleatórios entre 1 à 6.
Usando o operador "%" aplicaríamos ao valor da variável que receberá os números aleatórios o seguinte calculo: (rand() % 6) + 1;
Qualquer número dividido por 6 retornará o resto entre 0 e 5, somando isso a 1 teremos o intervalo de 1 à 6.
Exemplo de um programa que simula a jogada de um dado:
#include
Exemplo de um programa que simula a retirada de um número de um bingo de 1 à 100:
#include <time.h> main() { srand(time(NULL)); int i, aleatorio = (rand() % 100) + 1; printf("%d\n",aleatorio); system("pause"); }
Nenhum comentário:
Postar um comentário