En primer lugar, déjame decirte que esto no es tarea (soy un estudiante de nivel A, esto no es nada cerca de lo que solucionamos problema (esto es manera) más difícil)), pero estoy tratando de descubrir más de un problema para mejorar mi lógica de programación.Tricky problema de programación que tengo problemas para entender
Pensé en un escenario donde hay una matriz de enteros aleatorios, digamos por ejemplo 10 enteros. El usuario ingresará un número con el que quiere contar, y el algoritmo intentará calcular qué números se necesitan para hacer esa suma. Por ejemplo, si quiero hacer la suma 44 de esta matriz de enteros:
myIntegers = array(1, 5, 9, 3, 7, 12, 36, 22, 19, 63);
La salida sería:
36 + 3 + 5 = 44
O algo por el estilo. Espero ser claro. Como una ventaja adicional, me gustaría hacer que el algoritmo elija la menor cantidad de números posible para hacer la suma requerida, o dar un error si la suma no se puede hacer con los números suministrados.
Pensé en usar recursividad y iterar a través de la matriz, agregando números una y otra vez hasta que la suma se cumple o se pasa. Pero lo que no puedo entender es qué hacer si el algoritmo va más allá de la suma y debe ser selectivo sobre qué números elegir de la matriz.
No estoy buscando un código completo, o un algoritmo completo, solo quiero su opinión sobre cómo debo proceder con esto y tal vez compartir algunos consejos o algo. Probablemente empiece a trabajar en esto esta noche. : P
Como dije, no deberes. Solo quiero hacer algo un poco más avanzado.
Gracias por cualquier ayuda que pueda ofrecer. :)
ver esto: http://en.wikipedia.org/wiki/Subset_sum_problem – codaddict
Tenía esto en curso de CS. Todavía creo que es tarea. ;) –
¡Enhorabuena por encontrar el problema NP-complete por su cuenta! :) –