01 · Natürliche Zahlen: Null, Nachfolger und Rekursion
Natürliche Zahlen: Null, Nachfolger und Rekursion¶
Stellen Sie jede natürliche Zahl als Null oder Nachfolger dar und lesen Sie Gleichheit und Addition aus diesen Fällen.
Operatoren rufen spezielle Methoden auf; der Dekorator protokolliert beim Zurückkehren.
- die mathematische Definition von „Natürliche Zahlen: Null, Nachfolger und Rekursion“ in eigenen Worten erklären
- ihre Darstellung in Python-Daten zeigen
- aus dem echten Code einen kleinen Ablauf vorhersagen
Null und Nachfolger gehören zu Peanos Ausgangsaxiomen. `n + 0 = n` und `n + S(m) = S(n + m)` sind rekursive Additionsdefinitionen.
`pre=None` bedeutet Null, `pre=n` bedeutet `S(n)`. Die 2 ist die Kette `S(S(0))`, kein Feld mit dem int 2.
`0` / `S(n)` → `NaturalNumber.pre`; recursive addition → `__add__`
Mathematische Definition
Mathematische Definition¶
Null und Nachfolger gehören zu Peanos Ausgangsaxiomen. n + 0 = n und n + S(m) = S(n + m) sind rekursive Additionsdefinitionen.
Datenrepräsentation
Datenrepräsentation¶
pre=None bedeutet Null, pre=n bedeutet S(n). Die 2 ist die Kette S(S(0)), kein Feld mit dem int 2.
Python-Implementierung
Python-Implementierung¶
__eq__ trennt Null und Nachfolger und vergleicht Vorgänger; die Zweige von __add__ entsprechen den beiden Gleichungen.
Die im Kurs verwendete genaue Zuordnung:
Ausführungsablauf
Ausführungsablauf¶
Bei 2 + 2 sinkt der rechte Operand bis Null. Beim Rückweg erscheint der Basisfall vor den äußeren Aufrufen.
Notieren Sie Basiszeile, letzte Rekursionszeile und Endwert.
Erst vorhersagen, dann ausführen.
Prüfung durch Tests
Prüfung durch Tests¶
Tests benennen die Trennung der Null, Injektivität des Nachfolgers und Additionsgleichungen; sie ersetzen keine Induktion.
Geltungsbereich und Grenzen
Geltungsbereich und Grenzen¶
Die unäre Kette zeigt Struktur, wird aber mit dem Wert teurer; verwenden Sie kleine Eingaben.