Aller au contenu principal

Ensembles & relations

#Ensembles et relations

Les ensembles sont des collections d'objets distincts, appelés éléments. Les relations permettent de décrire les liens entre les éléments de deux ensembles ou d'un ensemble avec lui-même.

#Opérations ensemblistes

Les opérations fondamentales sur les ensembles incluent :

  • Union (A ∪ B) : Ensemble des éléments appartenant à A ou à B.
  • Intersection (A ∩ B) : Ensemble des éléments appartenant à la fois à A et à B.
  • Différence (A - B) : Ensemble des éléments appartenant à A mais pas à B.
  • Complémentaire (A̅) : Ensemble des éléments n'appartenant pas à A.
  • Produit cartésien (A × B) : Ensemble des paires ordonnées (a, b) où a ∈ A et b ∈ B.

#Fonctions

Une fonction f: A → B associe à chaque élément de l'ensemble A (domaine) un unique élément de l'ensemble B (codomaine).

  • Injection : Chaque élément de B a au plus un antécédent.
  • Surjection : Chaque élément de B a au moins un antécédent.
  • Bijection : Fonction qui est à la fois injective et surjective.

#Relations

Une relation R entre deux ensembles A et B est un sous-ensemble du produit cartésien A × B.

#Relations d'équivalence

Une relation R sur un ensemble A est une relation d'équivalence si elle est :

  1. Réflexive : ∀a ∈ A, aRa
  2. Symétrique : ∀a,b ∈ A, aRb ⇒ bRa
  3. Transitive : ∀a,b,c ∈ A, aRb ∧ bRc ⇒ aRc

Les classes d'équivalence partitionnent l'ensemble A.

#Relations d'ordre

Une relation R sur un ensemble A est une relation d'ordre si elle est :

  1. Réflexive : ∀a ∈ A, aRa
  2. Antisymétrique : ∀a,b ∈ A, aRb ∧ bRa ⇒ a = b
  3. Transitive : ∀a,b,c ∈ A, aRb ∧ bRc ⇒ aRc

Un ordre est total si deux éléments quelconques sont comparables (∀a,b ∈ A, aRb ∨ bRa).

#Exercice : Implémentation d'opérations ensemblistes en Python

Implémentez les opérations ensemblistes de base en Python sans utiliser les ensembles intégrés.

#Instructions

  1. Créez une classe Ensemble qui représente un ensemble d'éléments.
  2. Implémentez les méthodes suivantes :
    • union(other) : Retourne l'union de deux ensembles.
    • intersection(other) : Retourne l'intersection de deux ensembles.
    • difference(other) : Retourne la différence de deux ensembles.
    • produit_cartesien(other) : Retourne le produit cartésien de deux ensembles.
  3. Ajoutez une méthode est_egal(other) pour tester l'égalité d'ensembles.

#Exemple de code

pythonpython
1class Ensemble:2    def __init__(self, elements=None):3        self.elements = elements if elements is not None else []4    5    def union(self, other):6        result = Ensemble(self.elements[:])7        for elem in other.elements:8            if elem not in result.elements:9                result.elements.append(elem)10        return result11    12    def intersection(self, other):13        result = Ensemble()14        for elem in self.elements: