Turtlegrafik (III)

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Loading

Inhaltsverzeichnis

Selbstähnlichkeiten

Der Binärbaum

Zunächst betrachten wir das nachfolgende Grafikobjekt, das wir als Binärbaum bezeichnen wollen. Dabei fällt auf, dass jeder Ast wieder ein kleiner Binärbaum ist. Wir wollen diese Selbstähnlichkeit zu seiner Beschreibung ausnutzen:

Binärbaum1.gif
Beschreibung:
  • Der einfachste Binärbaum besteht aus einem Stamm.
  • Jeder andere Binärbaum besteht aus einem Stamm sowie einem vereinfachten linken und einem vereinfachten rechten Binärbaum.

Wir stellen fest, dass es durchaus sinnvoll sein kann, Objekte mit sich selbst zu beschreiben.
Mit der Turtlegrafik wollen wir eine gleichwertige Implementation vornehmen. Dazu definieren wir den Baum mit sich selbst.

Prozeduren, die mit sich selbst definiert werden, heißen rekursive1) Prozeduren.
Rekursionen stellen ein leistungsstarkes und universelles Konzept zur Problemlösung dar.

1) recurrere (lat.): "zurücklaufen"

Die "Quadratschnecke"

Beschreibung:

  • Die einfachste Quadratschnecke besteht aus einer Strecke.
  • Jede andere Quadratschnecke besteht aus einer Strecke, einer Drehung um 90° sowie einer etwas verkürzten Quadratschnecke.

Ein Ausflug in die Mathematik: Die rekursive Fakultätsfunktion

Zum besseren Verständnis analysieren wir die mathematische Definition der Fakultätsfunktion:

bzw. rekursiv:

In der zweiten Beschreibung ist die Definition mit sich selbst offensichtlich.

Beschreibung:

  • Die Fakultät einer Zahl ist 1, wenn die Zahl 0 ist,
  • anderenfalls berechnet sie sich aus dem Produkt dieser Zahl mit der Fakultät ihres Vorgängers.

Implementation:

Beachte: Rekursive Prozeduren enthalten neben dem rekursiven Prozeduraufruf immer eine Elementarbedingung!

Das Affenmodell

Eine schöne Interpretation des rekursiven Prozeduraufrufes finden wir in dem Buch "Rekursionen - Ein didaktischer Zugang mit Funktionen" von Chr. Wagenknecht (Dümmler Verlag, Bonn 1994, S. 42):

Affenmodell1.gif

"Der Auftrag, der von außen dem höchsten Oberaffen übergeben wurde, wird von diesem nicht vollständig bearbeitet, sondern in etwas abgeschwächter Form dem untergebenen Affen übergeben. Dieser verhält sich ebenso zu seinem Untergebenen. Der letzte Affe in dieser Hierarchie kann den ihm übergebenen Auftrag erfüllen und dem übergeordneten Affen übergeben. Jeder weitere Affe hat die Pflicht, das Resultat der Erledigung seines Auftrages seinem Auftraggeber zu übergeben. Schließlich kann der Ranghöchste sein Ergebnis abliefern.
Parallelen zu Einrichtungen, Ämtern und Institutionen unserer Gesellschaft sind unbeabsichtigt oder rein zufällig."

Aufgaben

Die Prozeduren zu den nachfolgenden Aufgaben können entweder unter dem eigenen Benutzernamen oder auf der unten verlinkten Lösungsseite implementiert werden.

  1. Von rotierenden Quadraten zur Spiralarmgalaxie

    Zunächst soll ein Quadrat um seinen Eckpunkt gedreht und dabei seine Größe verkleinert werden.
    Wenn man mehrere dieser Drehungen zusammensetzt, erinnert das Gesamtbild an eine Spiralarmgalaxie (vgl. Abbildungen).

    Spiralarmgalaxie1.GIF

    Entwickle eine rekursive Prozedur zur Darstellung eines "Spiralarms".
    Zur Darstellung der "Spiralarmgalaxie" kannst Du diese Prozedur dann in einer Zählschleife aufrufen.

  2. Die "Quadratpflanze"

    Die Bilder zeigen die Entstehung einer Quadratpflanze.
    Bei jedem neuen Aufruf beträgt die Seitenlänge jeweils nur noch ein Drittel der vorherigen.

    Quadratpflanze1.GIF

    • Zeichne den nächsten (vierten) Schritt in der Entwicklung.
    • Implementiere eine Quadratpflanze mit beliebiger Rekursionstiefe in der Turtlegrafik.
  3. Die rekursive Summenfunktion

    Auf unserer Startseite wird die Summe von natürlichen Zahlen iterativ bestimmt, d.h. schrittweise wird das Ergebnis in einer Zählschleife ermittelt.
    Berechne nun diese Summe nach dem Vorbild der Fakultätsfunktion rekursiv.

  4. Der Turm von Hanoi

    Vermutlich stammt dieses Spiel von dem französischen Mathematiker Édouard Lucas (* 4. April 1842; † 3. Oktober 1891), bei dem ein Turm aus einzelnen Scheiben von nach unter Nutzung des Hilfsplatzes umgesetzt werden soll. Dabei darf immer nur eine Scheibe bewegt werden. Außerdem darf nie eine größere Scheibe auf einer kleineren liegen.

    Lucas dachte sich dazu die Geschichte aus, dass indische Mönche im großen Tempel zu Benares, im Mittelpunkt der Welt, einen Turm aus 64 goldenen Scheiben versetzen müssten.
    Wenn ihnen das gelungen sei, wäre das Ende der Welt gekommen.

    Turm von Hanoi

    Gegeben ist nun die folgende Implementation:

    • Teste zunächst die Prozedur hanoi mit kleinen Argumenten.

    • Beschreibe die Spielstrategie (d.h. den Lösungsalgorithmus) verbal.
    • Ermittle den Zusammenhang, der zwischen der Anzahl der Scheiben und der Anzahl der erforderlichen Bewegungen besteht.
    • In wie vielen Jahren "droht" das Ende der Welt, wenn die indischen Mönche im Tempel zu Benares für die Bewegung jeder einzelnen Scheibe eine Sekunde benötigen würden?
    Turm von Hanoi mit 3 Scheiben

Zu den Lösungen der Aufgaben.

Zum Weiterarbeiten

Fraktale

Mit selbstähnlichen Figuren bzw. Objekten beschäftigt sich heute ein ganzes Teilgebiet der Mathematik, die fraktale Geometrie. Ihre Untersuchungsergebnisse haben z.B. einen wesentlichen Einfluss auf die Chaosforschung.
Klassische selbstähnliche oder fraktale Figuren sind das Sierpinski-Dreieck und die Koch-Schneeflocke:

Sierpinski Koch1.GIF

Beschreibe beide Fraktale verbal und implementiere diese mit der Turtlegrafik.

Zur Problemlösung.

Persönliche Werkzeuge