Tengo una lista de elementos (1, 2, 3), y que necesito para obtener el superconjunto (powerset) de esa lista (sin repetición de elementos). Así que, básicamente, lo que necesito para crear una lista de listas que se parece a:Impresión de todos los posibles subconjuntos de una lista
{1}
{2}
{3}
{1, 2}
{1, 3}
{2, 3}
{1, 2, 3}
¿Cuál es la mejor (la simplicidad> eficiencia en este caso, la lista no va a ser enorme) forma de implementar esto? Preferiblemente en Java, pero una solución en cualquier idioma sería útil.
Usted desea que todos los subconjuntos de esa lista. Sugeriría la recursión. Sin embargo, si se trata de, por ejemplo, más de 30-40 elementos, usted no será capaz de hacer frente a la enorme (más de 1 TB de datos) que tiene. ¿Para qué se usa esto? –
Esta estructura de datos que está buscando se llama una Powerset (la diferencia más es que también contiene un conjunto vacío). Ya ha sido discutido en SO. Gracias –
zenzen para señalarme en la dirección correcta ... Me encontraron http://stackoverflow.com/questions/1670862/obtaining-powerset-of-a-set-in-java. – Steve