Aller au contenu

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.

Avant ce chapitre

Vous pouvez suivre l’égalité et l’addition récursives des naturels.

À la fin, vous pourrez
  • 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
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

`Integer` conserve deux naturels. `(3,1)` et `(4,2)` sont distincts mais représentent tous deux 2.

Implémentation Python

`(a,b) ~ (c,d)` → `a + d == b + c` → `Integer.__eq__`

Implémentation et tests à lire avec ce chapitre

peano/integer.py · tests/test_integer.py

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:

`(a,b) ~ (c,d)` → `a + d == b + c` → `Integer.__eq__`

Trace d’exécution

Trace d’exécution

Comparer des entiers réutilise addition et égalité naturelles ; la trace rend cette dépendance visible.

Prédiction avant exécution

Décidez si les paires sont égales et prévoyez le représentant normalisé.

Expérience · Entiers : représentants et équivalence Non exécuté
⌘ / Ctrl + Enter
Sortie
É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.

Quelle affirmation décrit correctement l’implémentation de « Entiers : représentants et équivalence » ?