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 :
- Réflexive : ∀a ∈ A, aRa
- Symétrique : ∀a,b ∈ A, aRb ⇒ bRa
- 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 :
- Réflexive : ∀a ∈ A, aRa
- Antisymétrique : ∀a,b ∈ A, aRb ∧ bRa ⇒ a = b
- 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
- Créez une classe
Ensemble
qui représente un ensemble d'éléments. - 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.
- Ajoutez une méthode
est_egal(other)
pour tester l'égalité d'ensembles.
#Exemple de code
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: