02 · Ganze Zahlen: Repräsentanten und Äquivalenz
Ganze Zahlen: Repräsentanten und Äquivalenz¶
Stellen Sie `a-b` durch das natürliche Paar `(a,b)` dar und verstehen Sie verschiedene Repräsentanten desselben Werts.
Sie können rekursive Gleichheit und Addition natürlicher Zahlen verfolgen.
- die mathematische Definition von „Ganze Zahlen: Repräsentanten und Äquivalenz“ in eigenen Worten erklären
- ihre Darstellung in Python-Daten zeigen
- aus dem echten Code einen kleinen Ablauf vorhersagen
`(a,b)` und `(c,d)` bedeuten genau dann dieselbe ganze Zahl, wenn `a+d=b+c`; eine ganze Zahl ist eine Äquivalenzklasse.
`Integer` speichert zwei natürliche Zahlen. `(3,1)` und `(4,2)` sind verschieden und bedeuten beide 2.
`(a,b) ~ (c,d)` → `a + d == b + c` → `Integer.__eq__`
Mathematische Definition
Mathematische Definition¶
(a,b) und (c,d) bedeuten genau dann dieselbe ganze Zahl, wenn a+d=b+c; eine ganze Zahl ist eine Äquivalenzklasse.
Datenrepräsentation
Datenrepräsentation¶
Integer speichert zwei natürliche Zahlen. (3,1) und (4,2) sind verschieden und bedeuten beide 2.
Python-Implementierung
Python-Implementierung¶
Integer.__eq__ vergleicht Kreuzsummen; normalize() entfernt den gemeinsamen Anteil und wählt etwa (2,0).
Die im Kurs verwendete genaue Zuordnung:
Ausführungsablauf
Ausführungsablauf¶
Der Vergleich verwendet natürliche Addition und Gleichheit wieder; die Spur zeigt diese Abhängigkeit.
Entscheiden Sie über die Gleichheit der Paare und den normalisierten Repräsentanten.
Erst vorhersagen, dann ausführen.
Prüfung durch Tests
Prüfung durch Tests¶
Tests prüfen verschiedene Repräsentanten, Abgeschlossenheit und Normalisierung.
Geltungsbereich und Grenzen
Geltungsbereich und Grenzen¶
Paare sind langsamer als int, machen aber die Quotientenkonstruktion sichtbar.