Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Norlak en 8 Junio 2012, 12:01 PM

Título: Contar cuantas veces se repite un numero [duda JAVA]
Publicado por: Norlak en 8 Junio 2012, 12:01 PM
Buenas a todos. tengo un codigo el cual genera numeros aleatorios y guarda cuantas veces se repite

ejemplo;

Citar
//numeros aleatorios
5
6
7
5
6
7


//en mi array tendria que aparecer algo como

1 --- 0
2 --- 0
3 --- 0
4 --- 0
5 --- 2
6 --- 2
7 --- 2

el problema que tengo es a la hora de incrementar el valor es decir coloco la 1º vez un 1 pero no se añadirle mas  .... perdonen mi ignorancia y gracias por su atencion
Título: Re: Contar cuantas veces se repite un numero [duda JAVA]
Publicado por: [Case] en 9 Junio 2012, 06:25 AM
Lo que yo recomendaría es que el a reglo generado lo ordenaras, y después en tiempo lineal lo recorres y vas contando he imprimiendo cuantas veces se repite.
La ordenacion sera lo principal, por lo que hay 2 posibles formas.

Si de antemano tu sabes que los números generados tienen un limite, esto es, están en un rango. Entonces solamente has un arreglo de tamaño n donde n es el limite de los números generados, y comienza a recorrer el arreglo random, si aparece un 500, entonces en la posición 500 del nuevo arreglo le pones un uno, si este se vuelve a encontrar a un 500 entonces incrementa.

Si no tienen limite, entonces simplemente implementa cualquier algoritmo de ordenamiento, que preferiblemente tenga complejidad de nlogn.


Título: Re: Contar cuantas veces se repite un numero [duda JAVA]
Publicado por: SokarTefnut en 23 Agosto 2012, 11:35 AM


int loteria= numero aleatorio
array[numero maximo aleatorio]


// Para contar
do{
loteria= generar numero ();
array[loteria]=array[loteria]++;
} while (la condicion que sea)


// para listar:

for( x=1;x<numero maximo aleatorio;x++)
{
cout << "el numero"+ x +"se ha repetido" +array
Título: Re: Contar cuantas veces se repite un numero [duda JAVA]
Publicado por: s00rk en 23 Agosto 2012, 18:33 PM
Código (java) [Seleccionar]

Random rnd = new Random();
int valor, limite = 7;
int arreglo[] = new int[limite];
msj("Numeros Aleatorios");
for(int x = 0; x < limite; x++)
{
valor = rnd.nextInt(limite)+1;
arreglo[valor-1]++;
msj(valor);
}

msj("\nNumeros Repetidos");
for(int x = 0; x < arreglo.length; x++)
msj("El Numero " + (x+1) + " Se Repite: " + arreglo[x] + " veces");