Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Représentation d'un ensemble par des listes ordonnées(pyhton)

Posté par
wakojako
11-11-13 à 14:19

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

Posté par
carpediem
re : Représentation d'un ensemble par des listes ordonnées(pyhto 11-11-13 à 16:32

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 ....

Posté par
bbomaths
re : Représentation d'un ensemble par des listes ordonnées(pyhto 11-11-13 à 21:50

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 :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !