Bonjour,
pouvez-vous m'aider un peu pour que je puisse écrire une fonction sous python ? je pense avoir une piste mais ça ne marche pas
Dans la suite E désigne l'ensemble des entiers compris entre 0 et n.
Une partie de E est représentée par une liste d'entiers ordonnée strictement croissante. Par exemple l'ensemble {1,0,3} est représenté par la liste [0,1,3]. Ecrire une des fonctions unions et intersection retournant respectivement la réunion et l'intersection de deux sous ensembles.
Merci
salut
dans un premier temps il serait bien de savoir s'il existe la "fonction" ensemble et alors il existe surement des fonction union et intersection
sinon
pour l'union il suffit de ::
ajouter une liste à une autre
trier la liste
supprimer les éléments apparaissant en double (au moins)
pour l'intersection c'est un peu plus compliqué
puisqu'il faut prendre chaque élément de la deuxième liste et le comparer à chaque élément de la deuxième liste ...
à nouveau avec une fonction ensemble ce serait très simple ... puisqu'on ne testerait que l'appartenance simultanée ....
Bonsoir.
Une idée de code...
# -- liste_union ---------------------------------------------------------------
#
# Description : union de deux listes
#
# Parameters :
#
# Return :
#
# Notes :
#
def liste_union(liste_1, liste_2) :
dernier_entier_liste_1 = liste_1[-1]
dernier_entier_liste_2 = liste_2[-1]
if dernier_entier_liste_2 >= dernier_entier_liste_1 :
dernier_entier = dernier_entier_liste_2
else :
dernier_entier = dernier_entier_liste_1
liste_entiers = list()
for i in range (0, dernier_entier + 1) :
liste_entiers.append(0)
for i in liste_1 :
liste_entiers[i] = 1
for i in liste_2 :
liste_entiers[i] = 1
liste = list()
for i in range (0, len(liste_entiers)) :
if liste_entiers[i] == 1 :
liste.append(i)
return liste
# -- liste_intersection --------------------------------------------------------
#
# Description : intersection de deux listes
#
# Parameters :
#
# Return :
#
# Notes :
#
def liste_intersection(liste_1, liste_2) :
dernier_entier_liste_1 = liste_1[-1]
dernier_entier_liste_2 = liste_2[-1]
if dernier_entier_liste_2 >= dernier_entier_liste_1 :
dernier_entier = dernier_entier_liste_2
else :
dernier_entier = dernier_entier_liste_1
liste_entiers = list()
for i in range (0, dernier_entier + 1) :
liste_entiers.append(0)
for i in liste_1 :
liste_entiers[i] += 1
for i in liste_2 :
liste_entiers[i] += 1
liste = list()
for i in range (0, len(liste_entiers)) :
if liste_entiers[i] >= 2 :
liste.append(i)
return liste
A+
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :