Autor: Luis Fernando Apáez Álvarez
class potencia():
# Creamos el constructor
def __init__(self, cjto):
self.conjunto = cjto
self.cardinalidad = len(cjto)
self.Nsubconjuntos = 2 ** len(cjto)
# Construimos el método para hallar el conjunto potencia de un conjunto dado
def calcular(self, cjto):
# Trabajamos el caso para el conjunto vacío (es decir la lista [])
if len(cjto) == 0:
return [[]]
# Implementamos la recursión
auxiliar = calcular(cjto[:-1])
# Paso final del cálculo
return auxiliar + [x + [cjto[-1]] for x in auxiliar]
# Creamos un objeto de la clase potencia
conjunto1 = potencia(['a', 'b', 'c'])
# veamos sus atributos
print(f'Cardinalidad del conjunto {conjunto1.conjunto} : {conjunto1.cardinalidad}')
print(f'Número de subconjuntos: {conjunto1.Nsubconjuntos}')
Cardinalidad del conjunto ['a', 'b', 'c'] : 3 Número de subconjuntos: 8
# Calculamos el conjunto potencia de ['a', 'b', 'c']
# invocamos el método
conjunto1.calcular(['a', 'b', 'c'])
[[], ['a'], ['b'], ['a', 'b'], ['c'], ['a', 'c'], ['b', 'c'], ['a', 'b', 'c']]