Alguém sabe, por favor, qual função devo usar (e se ela existe) pra calcular a moda em um conjunto de números?
Estou guardando os números em um int[];
só pra lembrar:
A moda é o valor mais freqüente em um conjunto de valores numéricos. A moda pode não existir e, mesmo que exista, pode não ser única. Exemplos:
1,1,3,3,5,7,7,7,11,13 tem moda 7
3,5,8,11,13,18 não tem moda
3,5,5,5,6,6,7,7,7,11,12 tem duas modas: 5,7 (bimodal).
sim… sem dúvida q o algoritmo é simples.
O fato é q se a linguagem já disponibilizar alguma função pra isso, prefiro utilizá-la do que escrever novamente, sacow?
tem varias maneiras de resolver isso…
bota a cabeça pra pensar…
uma maneira pra fazer isso eh vc colocar os valores num array. Tipo:
elemento[i] = n
onde “i” eh o numero que vai se repetir e “n” eh o numero de vezes q ele se repete.
Respondendo sua pergunta, não há uma função pronta na API do Java para este problema.
Mas, como já disseram, é um problema simples de ser resolvido. Se tiver dificuldades quanto ao algoritmo (depois de tentar bastante) pode recorrer ao guj
bem eu to com a mesma duvida q ele acima…de como calcular a moda em java, tenho um trabalho a ser terminado, pede estatisticas como a moda, mediana, media, maior numero, menor numero e primeiro valor…
pra mim so falta terminar a moda…talvez a resposta de pra minha duvida ,seja equivalente a do inicio do forumm, calculo de moda…
bem deixo o q ja fiz em anexo para todos verem, tanto o main qt o construtores…
no aguardo, abracos.
Eu desenvolvi o algoritmo do calculo da moda. É o seguinte.
public int moda() {
int[] cont = new int[CPD.controladora + 1];
int vezes = 0;
int indice = 0;
for (int i=0; i < (CPD.controladora + 1); i++) {
for (int j=0;j < (CPD.controladora + 1); j++) {
if(vet[i] == vet[j]) {
cont[i] = cont[i] + 1;
}
}
}
vezes = cont[0];
for (int i=0; i < cont.length; i++) {
if (cont[i] > vezes) {
vezes = cont[i];
indice = i;
}
}
return vet[indice];
}
Explicando:
A moda nesse caso retorna o numero que mais se repete dentro de um vetor.
a variável static CPD.controladora controla os valores que foram inseridos pelo usuário, ou seja, controla o indice do último valor inserido pelo usuário, pq se raciocinarmos, só podemos criar estatísticas em cima de valores que foram atribuídos no vetor pelo usuário, e nao deixar o vetor com apenas os valores default, nesse caso, seria 0.
O vetor de inteiros tem a referência vet, que é o vetor que está sendo manipulado nesta estatística!
Qualquer dúvida sobre o algoritmo, ou sobre estatísticas matemáticas mande em email para, leandro.storoli@gmail.com
Podemos até recorrer para coleções do Java, mas somente para auxiliar.
Neste caso como a dúvida presume-se em um trabalho acadêmico, então melhor entender o que é feito e tentar desenvolver!!!
leandros gostei muito da sua explicação, mais se ao invés de o usuário ter que inserir, como ficaria se eu tivesse uma coleção de dados em um servidor e quisesse trata-los utilizando a mode e a mediana?