Java - Ayuda con Moda estadistica

   
Vista:

Ayuda con Moda estadistica

Publicado por toño (4 intervenciones) el 14/10/2008 20:32:40
hola espero y me puedan ayudar
necesito hacer un metodo que me de el numero que mas se repiten en un ArrayList, ya logre hacer que me delos valores que se repiten 2 o mas veces pero solo quiero el de mayor repeticion
les dejo elcodigo haber que opinan

void Moda ()
{
float valMat1,valMat2;
String convercion;
float numMasAlto=0F;
int contador3;

for(int contador1=0;contador1<this.matriz.size();contador1++)
{
for(int contador2=0;contador2<this.matriz.size();contador2++)
{
valMat1=this.matriz.get(contador1);
valMat2=this.matriz.get(contador2);
if(valMat1==valMat2&&contador1!=contador2)
{
DatosIguales.set(contador1, contador2);
/*System.out.print("si");
DatosIguales.add(valMat2);*/
}
}
}
for(int contador1=0;contador1<DatosIguales.size();contador1++)
{
if(numMasAlto<DatosIguales.get(contador1))
{
numMasAlto=DatosIguales.get(contador1);
}
}
convercion=String.valueOf(numMasAlto);
jTextField4.setText(convercion);

}

bueno estoy haciendo un relajo en codigo pero espero y me puedan ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Moda estadistica

Publicado por Mario (199 intervenciones) el 16/10/2008 12:10:20
Mira, te aconsejo lo siguiente, que creo que es lo más sencillo.

Declaras un array bidimensional. En su primera columna almacenarás los números que van saliendo, y en la segunda, las repeticiones.

Cuando leas un número, lo primero que debes hacer es recorrer la primera columna del array para comprobar si se encuentra ahí. Si no se encuentra, lo añades, y en la segunda columna, pones un 1, señalando que ha aparecido una vez. Si lo encuentras, quiere decir que es una repetición más, con lo cual solo debes sumarle uno a las repeticiones que tienes en la segunda columna.

Creo que es la solución más sencilla y que te serviría a la perfección.

Otra quizás un poco más elegante podría ser la siguiente.

Te creas una clase que se llame... elemento x ejemplo. Ella contendrá dos atributos, número, y repeticiones. Cuando leas un número, creas un elemento, almacenas el número en su atributo numero, y su atributo repeticiones lo pones a uno. Para ser más efectivos y un pelín más elegante, podrías hacer un constructor que reciba directamente ese número, y que al construir el objeto almacenes directamente el número en su atributo correspondiente y pongas la repetición a uno. Podrías crearle un método llamado sumarRepeticion() que se encargase de sumarle uno al atributo repeticiones.
Con esta pequeña y simple clase, podrías utilizar por ejemplo un ArrayList de elementos, cada vez que leyeses un número, recorrerías la lista para ver si existe algún elemento que contenga ese número. Si no es así, creas el elemento señalando una repetición. Y si aparece dicho número, solo tendrías que poner elemento.sumarRepeticion();

Perdón por el tocho, pero quería que quedase bien explicado :P Si tienes alguna duda me lo dices ; )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Moda estadistica

Publicado por fernando sellan (1 intervención) el 13/11/2008 23:22:27
hola que tal como estas sabes quisiera saber si puedes ayudarme con la moda en estadistica sabes es un poco dificil es por eso que yo te pido ayuda me llamo fernando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar