Problema de suma cero (con espacios de estados)
El problema de suma cero consiste en, dado el conjunto de enteros, encontrar sus subconjuntos no vacío cuyos elementos sumen cero.
Usando el procedimiento de búsqueda en profundidad, definir la función
1 |
suma0 :: [Int] -> [[Int]] |
tal que suma0 ns
es la lista de las soluciones del problema de suma cero para ns
. Por ejemplo,
1 2 3 4 5 6 |
λ> suma0 [-7,-3,-2,5,8] [[-3,-2,5]] λ> suma0 [-7,-3,-2,5,8,-1] [[-7,-3,-2,-1,5,8],[-7,-1,8],[-3,-2,5]] λ> suma0 [-7,-3,1,5,8] [] |