03 · Rationale Zahlen: Kreuzprodukte und Kürzung
Rationale Zahlen: Kreuzprodukte und Kürzung¶
Behandeln Sie einen Bruch als Ganzzahlpaar, dessen Wert nicht vom gewählten Repräsentanten abhängt.
Sie unterscheiden Repräsentant, Äquivalenzklasse und Normalform.
- die mathematische Definition von „Rationale Zahlen: Kreuzprodukte und Kürzung“ in eigenen Worten erklären
- ihre Darstellung in Python-Daten zeigen
- aus dem echten Code einen kleinen Ablauf vorhersagen
Bei Nennern ungleich Null gilt `p/q = r/s` genau dann, wenn `p*s=q*r`; daher sind `1/2` und `2/4` gleich.
`Rational` speichert ganzzahligen Zähler und Nenner, weist Null zurück und wählt mit `reduction()` eine lesbare Form.
`p/q ~ r/s` → `p * s == q * r` → `Rational.__eq__`
Mathematische Definition
Mathematische Definition¶
Bei Nennern ungleich Null gilt p/q = r/s genau dann, wenn p*s=q*r; daher sind 1/2 und 2/4 gleich.
Datenrepräsentation
Datenrepräsentation¶
Rational speichert ganzzahligen Zähler und Nenner, weist Null zurück und wählt mit reduction() eine lesbare Form.
Python-Implementierung
Python-Implementierung¶
__eq__ bildet Kreuzprodukte, __add__ einen gemeinsamen Nenner; die Kürzung normalisiert Vorzeichen und ggT.
Die im Kurs verwendete genaue Zuordnung:
Ausführungsablauf
Ausführungsablauf¶
Der Vergleich führt zu Multiplikation und Gleichheit ganzer Zahlen und zeigt die Wiederverwendung im Zahlenturm.
Sagen Sie Gleichheitswert und gekürzte Form von `2/4` voraus.
Erst vorhersagen, dann ausführen.
Prüfung durch Tests
Prüfung durch Tests¶
Tests vergleichen äquivalente Brüche, Hashwerte und die Zurückweisung des Nullnenners.
Geltungsbereich und Grenzen
Geltungsbereich und Grenzen¶
Große Komponenten verstärken die Kosten der zugrunde liegenden unären Naturzahlen.