Como atribuir valores aleatórios numa matriz usando C?
Ramon
2011-07-15 07:28:39 UTC
Uma matriz 5x5 precisa ter 5 tipos de valores (exemplo, 0,1,2,3,4), distribuidos aleatoriamente em suas células (por exemplo, ter 5 números zeros, 5 números um, 5 números dois, 5 números 3 e 5 números 4, postos aleatoriamente)...
qual função utilizar?
Trzy respostas:
?
2011-07-15 09:17:49 UTC
Para gerar números aleatórios use a função rand()
Você precisa iniciar ela com uma semente. Para iniciar a semente, use srand(int);
Para ser sempre imprevisível, é bom escolher um int que vai no parâmetro sempre diferente. Geralmente se usa o time(0), então a semente é um número de segundos desde 1970.
Para limitar por exemplo entre [0,10], use o módulo 11(%11).
srand(time(0));
int aleatorio = rand() % 11;
Se quiser entre [0, 10[
int aleatorio = rand() % 10;
Se quiser entre [4, 10]
int aleatorio = rand() % 7 + 4;
..................................^ (10+1-4)
Junior
2011-07-15 07:56:55 UTC
2 pontos, vlw ai champs
2011-07-15 07:35:48 UTC
Precisa ser exclusivamente em C?
Existem programas para cálculos matemáticos muito úteis para esse tipo de coisa como por exemplo o MATLAB.
Com o MATLAB é possível gerar matrizes de todas as formas possíveis, inclusive, randômica.
Cálculos com Matrizes do tipo inversão, multiplicação matricial e vetorial com comandos bem simples.
Agora... Para ajudar na sua pesquisa (que não tem nada a ver com o que falei acima, foi apenas uma dica de ferramenta), achei esses dois links: