| |||
Como contar los datos repetidos en un arreglo de memoria , C++ Estoy creando un programa de optimizacion, el problema de la mochila, en una matriz por columna ingreso datos referentes a un objeto, me eh eoncontrado un problema y es que eh creado para cada objeto una fila en la matriz que le da una categoria a cada objeto con fines para identificar que objetos pertenecen a una misma categoría, entonces esta fila dentro de la matriz, quiero saber que datos tiene (por esto no hay problema) pero tambien necesito saber cuantas veces se repiten tales datos, por ejemplo que en la matriz fila de categorias esten los datos [ 1 , 3, 5 , 2 , 1 ,5] y me devuelva las cuentas de categoria 1 = 2, catecoria 2 = 1, categoria 3 = 1, categoria 5 = 2, eh echo mil intentos y ninguno me da resultado. |
| |||
Respuesta: Como contar los datos repetidos en un arreglo de memoria , C++ Puedes utilizar una función recursiva que calcule el número de apariciones como esta:
Código C++:
Ver original Le pasas el número que quieres buscar, y el array con su tamaño. Saludos |
| |||
Respuesta: Como contar los datos repetidos en un arreglo de memoria , C++ La solución puede pasar por usar un mapa. Quizás algo tal que
Código C++:
Ver original De esta forma puedes iterar sobre tu array e ir realizando el conteo de apariciones:
Código C++:
Ver original "Categorías" se asume que es el array o la fila donde están las categorías. Tras ejecutar este bucle, en contador[0] tendrás el total de veces que se repite el elemento 0 y así. Perdón di soy un poco escueto en el ejemplo. Estoy con el móvil y aquí cuesta mas escribir código. Un saludo |
| |||
Respuesta: Como contar los datos repetidos en un arreglo de memoria , C++ Gracias por la ayuda!, apenas me doy cuenta de las respuestas, ayer estuve buecando la manera, y se me ocurrio clonar los datos del array a otro e ir contando los datos de uno y escribiendo la cantidad en otro, se me hace mas facil de entender, ya que como soy nuevo aun desconosco varias, cosas, la de las funciones recursivas se como funciona, voy a intentarlo pero la idea del mapa voy a tener que investigarla, no logro comprenderla con los datos que me das, aun no puedo solucionar el problema, esto es lo que llevo:
Código C++:
Ver original no se si se entienda pero en la matriz copia, primera fila tengo los datos copiados, y la segunda fila tengo las veces que se repiten, a mi parecer lo tengo bien pero estoy cometiendo un error que no identifico, el resultado me da bien con pocos datos pero al ser mas de 10 me da resultado erroneos, e incluso en ocaciones aunque sean menos tambien errados. |
| |||
Respuesta: Como contar los datos repetidos en un arreglo de memoria , C++ otra cosa es que tambien quiero eliminar los datos repetidos, lo que hago es con un for posicionarme en el dato que quiero borrar e ir copiando el array de esta forma:
Código C++:
Ver original Algo debe estar mal ya que los resultados no van como quiero... espero alguien pueda decirme que me estoy olvidando, gracias. |
| |||
Respuesta: Como contar los datos repetidos en un arreglo de memoria , C++ Quizás este ejemplo te pueda aclarar un poco lo que te intentaba explicar acerca del mapa:
Código C++:
Ver original Un saludo. |
| |||
Respuesta: Como contar los datos repetidos en un arreglo de memoria , C++ Listo ya lo eh solucionado, gracias por sus consejos, use el de mapas que me explicaste mejor con ese código, saludos. |
Etiquetas: |