Combien d’étudiants dans au moins un club ?
Un ensemble est une collection d’éléments distincts, sans ordre et sans doublon. L’union, l’intersection et la différence sont les trois opérations qui servent à combiner deux ensembles.
Un bureau des étudiants compte 40 inscrits au club d’informatique et 25 au club de robotique. Dix sont dans les deux. Combien de personnes faut-il prévenir de la réunion ? Ce n’est pas 65.
À la fin de cette leçon
Remarque
Je peux combiner des ensembles et compter leurs éléments.
Mots-clés
| Mot | Ce que ça veut dire |
|---|---|
| Ensemble | une collection d’éléments distincts, sans ordre |
| Élément | un des objets d’un ensemble |
| Union | les éléments qui sont dans l’un ou dans l’autre |
| Intersection | les éléments qui sont dans les deux à la fois |
| Différence | les éléments du premier qui ne sont pas dans le second |
| Cardinal | le nombre d’éléments d’un ensemble |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un ensemble compte chaque élément une seule fois
Dans un ensemble, l’ordre ne compte pas et un élément n’apparaît qu’une fois. Écrire Jade deux fois sur une liste de club ne fait pas deux personnes.
Le cardinal est le nombre d’éléments distincts. Lancez la commande : elle range des noms et retire les répétitions.
Retirer les répétitions
printf 'jade\nomar\njade\n' | sort -uAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Le cardinal d’un ensemble
python3 -c "print(len({1, 2, 2, 3, 3, 3}))"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Union, intersection et différence dans un tableau
Soit A le club d’informatique et B le club de robotique. L’union garde ceux qui sont dans A ou dans B. L’intersection garde ceux qui sont dans A et dans B. La différence garde ceux de A qui ne sont pas dans B.
Ce sont les connecteurs de la leçon précédente : ou, et, et non.
Exemple travaillé : cinq étudiants, deux clubs
| Étudiant | Dans A | Dans B | Union (ou) | Intersection (et) | A sans B |
|---|---|---|---|---|---|
| Lina | Oui | Non | Oui | Non | Oui |
| Hugo | Oui | Non | Oui | Non | Oui |
| Jade | Oui | Oui | Oui | Oui | Non |
| Omar | Oui | Oui | Oui | Oui | Non |
| Yanis | Non | Oui | Oui | Non | Non |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Union, intersection, différence
python3 -c "print(sorted({1, 2, 3, 4} | {3, 4, 5}), sorted({1, 2, 3, 4} & {3, 4, 5}), sorted({1, 2, 3, 4} - {3, 4, 5}))"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Les mêmes opérations avec des listes
# Deux clubs, deux listes de prénoms.
club_info = ["Lina", "Hugo", "Jade", "Omar"]
club_robot = ["Jade", "Omar", "Yanis"]
dans_les_deux = []
for prenom in club_info:
if prenom in club_robot:
dans_les_deux.append(prenom)
print("Dans les deux clubs :", dans_les_deux)
seulement_info = []
for prenom in club_info:
if prenom not in club_robot:
seulement_info.append(prenom)
print("Seulement en info :", seulement_info)
# Ajoutez "Hugo" à club_robot puis relancez : qu’est-ce qui change ?
Erreur fréquente
Attention
Beaucoup pensent que A sans B et B sans A, c’est la même chose. Ce n’est pas le cas. Ici, Lina et Hugo sont dans A sans B. Yanis est dans B sans A. La différence dépend de l’ordre des deux ensembles.
On retire ce qu’on a compté deux fois
Pour compter l’union, on additionne les deux cardinaux. Mais les éléments des deux ensembles ont été comptés deux fois.
On retire donc le cardinal de l’intersection une fois. C’est le principe d’inclusion et exclusion : cardinal de l’union = cardinal de A + cardinal de B − cardinal de l’intersection.
Exemple travaillé : les deux clubs du bureau
| Étape | Calcul | Résultat |
|---|---|---|
| Club d’informatique | Cardinal de A | 40 |
| Club de robotique | Cardinal de B | 25 |
| Somme brute | 40 + 25 | 65 |
| Dans les deux clubs | Cardinal de l’intersection | 10 |
| Personnes à prévenir | 65 − 10 | 55 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Vérifier le principe sur un exemple
python3 -c "print(len({1, 2, 3, 4}) + len({3, 4, 5}) - len({3, 4}))"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Pour aller plus loin
Un troisième club compte 12 étudiants. Quatre sont aussi en informatique, trois aussi en robotique, et deux sont dans les trois clubs.
Écrivez comment vous compteriez l’union des trois clubs. Retirez les paires, puis rajoutez les triples : c’est l’inclusion et exclusion à trois ensembles.