Estoy buscando un algoritmo que pueda tomar dos conjuntos de enteros (tanto positivos como negativos) y buscar subconjuntos dentro de cada uno que tenga la misma suma.Algoritmo para buscar un subconjunto dentro de dos conjuntos de enteros cuyas sumas coincidan con
El problema es similar al subset sum problem excepto que estoy buscando subconjuntos en ambos lados.
He aquí un ejemplo:
Lista A {4, 5, 9, 10, 1}
Lista B {21, 7, -4, 180}
Así que el único partido aquí es: {10, 1, 4, 9} < => {21, 7, -4}
¿Alguien sabe si existen algoritmos para este tipo de problemas?
Hasta ahora, la única solución que tengo es un enfoque de fuerza bruta que prueba todas las combinaciones pero funciona en tiempo exponencial y he tenido que poner un límite estricto a la cantidad de elementos a considerar para evitar que tome demasiado largo.
La única otra solución que puedo pensar es ejecutar un factorial en ambas listas y buscar las mismas, pero eso no es muy eficiente y demora exponencialmente a medida que las listas se hacen más grandes.
Hola burningmonk. En respuesta a su pregunta que acaba de eliminar: http://iancooper.brinkster.net/Frontpage.aspx es un grupo de usuarios de Londres para .NET. ¡Es el primer resultado en Google amigo! – Nobody