Sie haben das Sirpinski-Dreieck kennen gelernt, das zu der Gattung der Fraktale gehört. Fraktale könnte man als rekursive Bilder bezeichnen: Sie wiederholen sich in sich selbst.
Cantor Staub gehört ebenfalls zu den Fraktalen und auch die weiteren Bilder, die wir hier erarbeiten. Der Cantor Staub setzt sich aus Quadraten zusammen, die in allen vier Ecken jeweils wieder einen Cantor Staub haben, die in allen vier Ecken jeweils wieder...
Um diesen Cantor Staub zuerst iterativ programmieren zu können, müssen Sie Listen und Listen von Listen (Matrizen oder Einz. Matrix) verstanden haben. Dazu gibt es auf der PyTamaro-Webseite einige Übungen, die unabhängig von diesem Curriculum bearbeitet werden können (z.B. der Bar-Code). Hier gehen wir davon aus, dass Sie Listen und Matrizen verstanden haben.
Betrachten Sie die erste Iteration:
Wenn Sie diese Grafik mit einer Matrix beschreiben, in der True
für Farbe und False
für Abstand steht, was steht in der Matrix?
Schreiben Sie den Code in der nächsten Zelle fertig. Die Matrizen sollen die ersten 3 Iterationen der Reihe (von 0 bis 2) darstellen. Diese Matrizen verwenden Sie später zum Erstellen des Cantor Staubs.
Sie stellen fest: Schon in der zweiten Iteration ist die Matrix sehr gross (9x9) und fehleranfällig. Trotzdem sollen Sie nun eine Funktion schreiben, die eine Matrix wie oben erwartet und daraus die gewünschte Iteration des Cantor Staubs erstellt. Denken Sie dabei daran, dass das Durchlaufen einer Matrix eine verschachtelte for-Schleife braucht.
Wie oben schon festgestellt, benötigt schon der zweite Iterationsschritt eine 9x9-Matrix. Die dritte Iteration wäre dann eine 27x27-Matrix.
Die n-te Iteration hätte eine 3^n x 3^n- Matrix. Hier sieht man, dass Iteration allenfalls möglich ist, aber schnell an ihre Grenzen kommt.
Schreiben Sie nun den Code für die rekursive Funktion des Cantor Staubs. Verwenden Sie dazu die Liste der Pin-Positionen pi_po
, die pro Rekursionsstufe einmal durchlaufen wird.
Ein Problem, dass sich zwar iterativ lösen lässt, kann durch Rekursion viel eleganter gelöst werden.
This activity has been created by Caroline Farner and is licensed under CC BY-SA 4.0.
Cantor Staub
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version 72fad4a (Wed, 18 Jun 2025 07:18:27 GMT)