Zum Inhalt

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.

Vor diesem Kapitel

Sie können rekursive Gleichheit und Addition natürlicher Zahlen verfolgen.

Danach können Sie
  • 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
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

`Integer` speichert zwei natürliche Zahlen. `(3,1)` und `(4,2)` sind verschieden und bedeuten beide 2.

Python-Implementierung

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

Implementierung und Tests zum Mitlesen

peano/integer.py · tests/test_integer.py

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:

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

Ausführungsablauf

Ausführungsablauf

Der Vergleich verwendet natürliche Addition und Gleichheit wieder; die Spur zeigt diese Abhängigkeit.

Vorhersage vor dem Lauf

Entscheiden Sie über die Gleichheit der Paare und den normalisierten Repräsentanten.

Experiment · Ganze Zahlen: Repräsentanten und Äquivalenz Nicht ausgeführt
⌘ / Ctrl + Enter
Ausgabe
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.

Welche Aussage beschreibt die Implementierung von „Ganze Zahlen: Repräsentanten und Äquivalenz“ korrekt?