Várias vezes ao codarmos algo em C, nos deparamos com coisas que necessitam ser aleatórias, como em um jogo por exemplo, precisa-se de sistemas aleatórios para um item que será deixado por alguém após morrer por exemplo, ou em geração de senhas, coisas assim. Existem várias formas para se obter isso, a principal é noção de algumas funções em C e principalmente criatividade.
Algumas funções
Irei citar agora algumas funções que sempre serão usadas praticamente, para poder ter aleatoriedade.
Algumas funções que dão muita ajuda, muita mesmo, para aleatoriedade são srand() e rand().
A função srand tem o seguinte protótipo:
void srand ( unsigned int seed );
A utilidade dela é rodar um "sistema aleatório", para o rand() retornar algo novo sempre, caso srand não for declarada, rand vai gerar sempre o mesmo número.
A utilização dela é assim: você declara o tempo de refresh dentro de srand, mais ou menos assim:
srand(time(NULL));
Para usar time() precisa-se declarar a biblioteca time.h. Quando declarada aquele modo, não haveria tempo determinado para srand gerar um novo número.
Agora a função rand() já é para jogar o número aleatório que srand gerou caso ela tenha sido declarada. O protótipo dela é esse:
int rand ( void );
Você pode usa-la assim:
printf("Um número aleatório: %d
", rand()%10);
Esse %10 serviria para delimitar o máximo que rand poderia chegar, que seria algo menor que 10.
[4] Comentário enviado por Gilfran em 26/09/2007 - 16:42h
Parabéns por explorar essa funcionalidade, muitas vezes passamos sufoco pensando em uma forma de elaborar algo do tipo e temos a função já pronta às nossas mãos.
Abraços,
"Gil" www.tux-ce.org
[5] Comentário enviado por mva em 12/12/2008 - 03:35h
Fala galera, blz??
É o seguinte... Depois de um semestre suado, estou aproveitando as ferias e tentando fazer um joguinho em C do tipo come-come...
O problema esta em fazer com que as comidas sejam colocadas de forma aleatoria dentro da tela...
Tentei usar as funcoes rand e srand, porem quando o faco, aparece um erro dizendo que algumas funcoes (que antes estavam funcionando perfeitamente) nao estao referenciadas...
Quero deixar claro que o compilador nao acusou erro em relacao as funcoes rand e srand, mas sim em outras funcoes construidas por mim e que antes estavam funcionando perfeitamente...
Todos os cabecalhos nos quais as funcoes estao definidas e codificadas foram incluidos... Nao faco ideia do porquê desse erro...
[6] Comentário enviado por jemessonlima em 25/03/2010 - 15:20h
caramba aleatoriedade , gostaria bastante da ajuda de vocês, daqui do vivaolinux, ok.
Trata-se do algoritmo Random Permutation of n letters (RANPER) ele se trata de uma determinada quantidade chamada de N, gerar termos aleatórios usando a técnica do gray code. o algoritmo encontra-se em FORTRAN No livro Combinatorial Algorithms do Wilf. Gostaria da ajuda de vocês.