Ensembles & relations
Progression
#Ensembles et relations
À quoi ça sert: modéliser des collections et des liens (appartenance, ordre, équivalence) de façon rigoureuse. Comment: opérations ensemblistes, relations (réflexive, symétrique, transitive), classes d’équivalence et ordres partiels.
#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).
#Atelier interactif : manipuler deux ensembles
Visualisez concrètement les opérations d’union, d’intersection et de différence en activant/désactivant des éléments.
Atelier ensembles & relations
Manipulez des profils d’étudiants: certains suivent l’option IA, d’autres ont choisi la voie stage long. Comparez les intersections et différences pour visualiser les effectifs.
|A| — Option IA
4
Carla, Diego, Aline, Hana
|B| — Stage long
4
Bilal, Gaël, Aline, Hana
|A ∩ B|
2
Aline, Hana
Hors A et B
2
Emma, Fatou
Résultat: Option IA ∪ Stage long
Appartient à Option IA ou Stage long (ou les deux).
Aline
L3
Bilal
L3
Carla
L2
Diego
L2
Emma
L1
Fatou
L1
Gaël
L2
Hana
L3
Astuce: placez des éléments « hors A et B » pour matérialiser le complément de l’union (l’univers moins A ∪ B) et visualiser une partition complète.
#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: