Aller au contenu

03 · Rationnels : produits croisés et réduction

Rationnels : produits croisés et réduction

Traitez une fraction comme une paire d’entiers dont la valeur ne dépend pas du représentant choisi.

Avant ce chapitre

Vous distinguez représentant, classe d’équivalence et forme normale.

À la fin, vous pourrez
  • expliquer avec vos mots la définition mathématique de « Rationnels : produits croisés et réduction »
  • 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

Pour des dénominateurs non nuls, `p/q = r/s` exactement quand `p*s=q*r` ; `1/2` et `2/4` ont donc la même valeur.

Représentation des données

`Rational` conserve numérateur et dénominateur entiers, refuse zéro et choisit une forme lisible avec `reduction()`.

Implémentation Python

`p/q ~ r/s` → `p * s == q * r` → `Rational.__eq__`

Implémentation et tests à lire avec ce chapitre

peano/rational.py · tests/test_rational.py

Définition mathématique

Définition mathématique

Pour des dénominateurs non nuls, p/q = r/s exactement quand p*s=q*r ; 1/2 et 2/4 ont donc la même valeur.

Représentation des données

Représentation des données

Rational conserve numérateur et dénominateur entiers, refuse zéro et choisit une forme lisible avec reduction().

Implémentation Python

Implémentation Python

__eq__ effectue les produits croisés, __add__ construit un dénominateur commun et la réduction normalise signe et PGCD.

La correspondance exacte utilisée dans ce cours:

`p/q ~ r/s` → `p * s == q * r` → `Rational.__eq__`

Trace d’exécution

Trace d’exécution

La comparaison descend vers multiplication et égalité entières, montrant la réutilisation de la tour numérique.

Prédiction avant exécution

Prévoyez le booléen d’égalité et la forme réduite de `2/4`.

Expérience · Rationnels : produits croisés et réduction 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 comparent fractions équivalentes, hachages et rejet du dénominateur nul.

Portée et limites

Portée et limites

De grands composants amplifient le coût des naturels unaires sous-jacents.

Quelle affirmation décrit correctement l’implémentation de « Rationnels : produits croisés et réduction » ?