Sou novato em Java e li alguns post sobre como gerar números aleatórios através do método Math.Random(). Acontece que além de gerar este números tenho de apresenar no final uma porcentagem indicando quantas vezes determinado número foi gerado (De todos os números). Como poderia fazer isto, já que o intervalo de números gerados seria de 0 a 5000 ? Usando um vetor para, em suas posições incrementar as vezes que determinado número foi gerado, me parece inviável pelo tamanho do vetor.
Obrigado a quem puder me ajudar.
Porcentagem de números gerados randomicamente
4 Respostas
robinho, acredito q uma ótima idéia e uma das únicas que achei é sim o uso de um vetor ou até mesmo um Banco de dados se possível, outra solução/idéia não estou conseguindo encontrar de momento.
Abraço,
Maicon
ae robinho,
a melhor idéia é mesmo utilizar um vetor de bytes e ir incrementando seus valores, entretanto isto não tem muito nexo, pois se vc ler a documentação irá descobrir que a distribuição é uniforme, ou seja, se vc gerar infinitamente os números todos eles serão gerados na mesma quantidade
byte[] nros = new byte[5000];
double[] perc = new double[5000];
Arrays.fill(nros,(byte)0);
for(int i = 0; i < 50000; i++)
nros[(int)(Math.random()*5000)]++;
for(int i =0; i < nros.length; i++)
perc[i] = (nros[i] / 50000d) * 100;
no array ‘nros’ vc vai ter qtas vezes cada indice foi ‘sorteado’, e no array ‘perc’ vc vai ter o percentual de ocorrência de cada índice, que será aproximadamente 0,02% por número
Se a geração de números randômicos for, de fato, randômica, nem precisaremos calcular o percentual que um determinado número ser gerado.
De um a cem, randomicamente falando, temos 1 % de probabilidade de um determinado número ser gerado.
E como isto está cheirando a dever de casa, com certeza o “ferramental teórico” para sua solução foi dado em aula!
spier
Realmente acho que o ideal é um array.
Se bem que o que o spier falou faz sentido…
Abraços, 