O codigo abaixo gera um resultado, acredito, incorreto. Aonde eu estou errando.
Eis o código:
public static void main(String[] args) {
int frequencia[] = new int[6];
int oMaior = 0;
java.util.Random jogada = new java.util.Random();
for(int contador = 1; contador <= 1000; contador++) {
frequencia[jogada.nextInt(6)]++;
}
for(int contador = 0; contador < 6; contador++) {
System.out.printf("Face %d: frequência: %d\n",contador, frequencia[contador] + 1);
}
oMaior = frequencia[0];
for (int contador = 0; contador <= 5; contador++ ) {
if (frequencia[contador] > oMaior){
oMaior = frequencia[contador];
}
}
System.out.printf("\nTeve mais sorte que apostou no dado: Face com %d frequências\n\n", oMaior );
}
Produz como resultado, por exemplo:
Sempre o resultado é menor em 1 da maior frequencia.
O Problema é o seguinte: Eu uso o gerado de numeros aleatórios (Classe java.uil.Random) para simular o lancamento de um dado(1-6). Uso a variável frequencia para armazenar, para cada face(1-6) a frequência de vezes que ela ocorreu(veja o laço: for(int contador = 1; contador <= 1000; contador++) { frequencia[jogada.nextInt(6)]++; }).
Como resultado eu espero saber qual face teve mais frequencia para informar que teve mais sorte: Apostou na face que saiu mais vezes. Trecho do codigo abaixo:
oMaior = frequencia[0];
for (int contador = 0; contador <= 5; contador++ ) {
if (frequencia[contador] > oMaior){
oMaior = frequencia[contador];
}
}
O problema é que o resultado da sempre um numero menor (em 1) em relação a maior frequencia(veja o texto destaca em negrito). Aonde é que eu estou errando ???