02 · Entiers : représentants et équivalence
Entiers : représentants et équivalence¶
Représentez `a-b` par la paire naturelle `(a,b)` et voyez pourquoi plusieurs paires donnent le même entier.
Vous pouvez suivre l’égalité et l’addition récursives des naturels.
- expliquer avec vos mots la définition mathématique de « Entiers : représentants et équivalence »
- indiquer comment elle est représentée dans les données Python
- prédire une petite exécution à partir du code réel
`(a,b)` et `(c,d)` représentent le même entier si et seulement si `a+d=b+c` ; l’entier est une classe de paires.
`Integer` conserve deux naturels. `(3,1)` et `(4,2)` sont distincts mais représentent tous deux 2.
`(a,b) ~ (c,d)` → `a + d == b + c` → `Integer.__eq__`
Définition mathématique
Définition mathématique¶
(a,b) et (c,d) représentent le même entier si et seulement si a+d=b+c ; l’entier est une classe de paires.
Représentation des données
Représentation des données¶
Integer conserve deux naturels. (3,1) et (4,2) sont distincts mais représentent tous deux 2.
Implémentation Python
Implémentation Python¶
Integer.__eq__ compare les sommes croisées et normalize() retire la partie commune pour choisir, par exemple, (2,0).
La correspondance exacte utilisée dans ce cours:
Trace d’exécution
Trace d’exécution¶
Comparer des entiers réutilise addition et égalité naturelles ; la trace rend cette dépendance visible.
Décidez si les paires sont égales et prévoyez le représentant normalisé.
Écrivez d’abord votre prédiction, puis exécutez.
Vérification par les tests
Vérification par les tests¶
Les tests couvrent plusieurs représentants, la fermeture des opérations et la normalisation.
Portée et limites
Portée et limites¶
Les paires sont moins efficaces que int, mais rendent visible la construction quotient.