filmov
tv
Curso de Programação C | Como gerar números aleatórios com as funções rand e srand? | aula 103
Показать описание
Seja muito bem vindo à aula de número 103 do nosso curso gratuito de programação com a linguagem C.
Ficar digitando números pelo teclado para testar nossos programas pode ser bem trabalhoso, especialmente com vetores maiores.
Uma função muito útil é a função rand() que vamos conhecer nesta aula.
Esta função serve para gerar valores aleatórios. Assim, ao fazermos uma repetição para preencher um vetor lendo valores do teclado, podemos apenas gerar valores para preencher nosso vetor, assim:
for(i = 0; i menor que tam; i++)
vet[i] = rand();
Contudo, ao executar o programa algumas vezes, você irá perceber que são gerados sempre os mesmos valores. Por que isso ocorre?
A verdade é que não é possível gerar números completamente aleatórios, gerar números "do nada". Precisamos partir de algo, de algum valor inicial.
Quem escreveu essa função definiu algum valor inicial que é utilizado para a geração dos números. São gerados sempre os mesmos valores porque é utilizado sempre esse valor padrão chamado de semente ou "seed" em inglês.
Para que seja gerada uma sequência diferente em cada execução, precisamos informar nossa semente, um valor que seja diferente em cada execução do nosso programa.
Um valor muito útil como semente é a hora do computador que será diferente em cada execução do programa, mesmo que em milésimos de segundos.
Para utilizar a hora do computador como semente, basta utilizar a função srand() uma única vez, como a seguir:
#include time.h
srand(time(null));
A função srand() altera a semente padrão pela nova semente recebida como parâmetro entre o par de parênteses.
Para obter a hora atual do computador, precisamos da biblioteca time.h. É esta biblioteca que possui a função que irá nos retornar a hora do computador: time(null).
Ficar digitando números pelo teclado para testar nossos programas pode ser bem trabalhoso, especialmente com vetores maiores.
Uma função muito útil é a função rand() que vamos conhecer nesta aula.
Esta função serve para gerar valores aleatórios. Assim, ao fazermos uma repetição para preencher um vetor lendo valores do teclado, podemos apenas gerar valores para preencher nosso vetor, assim:
for(i = 0; i menor que tam; i++)
vet[i] = rand();
Contudo, ao executar o programa algumas vezes, você irá perceber que são gerados sempre os mesmos valores. Por que isso ocorre?
A verdade é que não é possível gerar números completamente aleatórios, gerar números "do nada". Precisamos partir de algo, de algum valor inicial.
Quem escreveu essa função definiu algum valor inicial que é utilizado para a geração dos números. São gerados sempre os mesmos valores porque é utilizado sempre esse valor padrão chamado de semente ou "seed" em inglês.
Para que seja gerada uma sequência diferente em cada execução, precisamos informar nossa semente, um valor que seja diferente em cada execução do nosso programa.
Um valor muito útil como semente é a hora do computador que será diferente em cada execução do programa, mesmo que em milésimos de segundos.
Para utilizar a hora do computador como semente, basta utilizar a função srand() uma única vez, como a seguir:
#include time.h
srand(time(null));
A função srand() altera a semente padrão pela nova semente recebida como parâmetro entre o par de parênteses.
Para obter a hora atual do computador, precisamos da biblioteca time.h. É esta biblioteca que possui a função que irá nos retornar a hora do computador: time(null).
Комментарии