En esta página, aprenderás cómo generalizar la solución de helado para enumerar los subconjuntos de cualquier conjunto.
Dado un conjunto de cosas, un subconjunto contiene cero o más de sus elementos, sin duplicados. Como ocurría con los tazones de helado, el orden no importa.
Por ejemplo, dado el conjunto {Banana, Naranja, Banana}, hay subconjuntos de un elemento como {Banana} y subconjuntos de dos elementos como {Manzana, Banana}. El conjunto original {Manzana, Naranja, Banana} cuenta, al igual que el conjunto vacío {} con cero elementos.
subsets
que toma una lista como entrada y reporta una lista de listas en la que cada elemento es un subconjunto de la lista de entrada original. El orden en que aparecen los subconjuntos en la lista de salida no importa, pero cada subconjunto debe aparecer exactamente una vez. El resultado podría verse así:Si estás atascado después de probar tantas ideas que se te ocurran, haz clic aquí para obtener un poco de ayuda.
subconjuntos
en el caso base? ¡Esta es una parte difícil de hacer bien!
Aquí hay una solución para el bloque subconjuntos
.
Esta solución para subconjuntos
realiza la misma llamada recursiva dos veces, una ineficiencia que se puede corregir.
conteo
para contar cuántas llamadas recursivas se realizan para encontrar los 64 subconjuntos de una lista de seis elementos.