On décide de représenter un ensemble par une liste (sans doublon).
Par exemple, un ensemble de couleurs :
L = ['jaune', 'vert', 'bleu', 'orange', 'magenta', 'marron', 'brun', 'rouge' ]
Écrire une fonction python récursive :
Entrée | Un ensemble sous la forme précédente. |
---|---|
Sortie | L'ensemble des parties de cet ensemble. |
- définition récursive
- un code
- Cas de base : lorsqu'un ensemble E est vide, l'ensemble des parties de E est constitué du seul sous-ensemble vide.
- Dans les autres cas, on peut écrire E sous la forme de la réunion d'un ensemble F et d'un singleton {a}. L'ensemble des parties de E est alors constitué des parties Q de F et des parties Q ∪ {a}.
def parties(L) :
if L == [] : return [[]]
else :
p = parties(L[1:])
return p + [ [L[0]] + partie for partie in p]
L = ['jaune', 'vert', 'bleu', 'orange', 'magenta', 'marron', 'brun', 'rouge' ]
P = parties(L)
print( P)
n = len(L)
print("Nombre d'éléments de la liste initiale L : ", n)
print(" 2^{} = {}.".format( n, 2**n ) )
print("Nombre d'éléments dans parties(L) : ", len(P) )