1) Das Treppenproblem



Ähnliche Dokumente
Algorithmen & Programmierung. Rekursive Funktionen (3)

Beim rekursiven Aufruf einer Funktion wird jeweils ein Duplikat der gesamten Funktion im Speicher abgelegt.

Inhalt. 7 Rekursionen Eine unendliche Geschichte Fakultät Türme von Hanoi Dr.

= a) Berechnen Sie die fehlenden Funktionswerte der Wertetabelle. n

ALPII Objektorientierte Programmierung

Vorkurs Informatik WiSe 17/18

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

Beispiel 1: Fakultät

Rekursive Algorithmen

II.3.1 Rekursive Algorithmen - 1 -

Vorkurs Informatik WiSe 16/17

4 Rekursionen. 4.1 Erstes Beispiel

Grundlagen der Programmierung

FHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

Induktion und Rekursion

Inhalt. 3. Spezielle Algorithmen

3. rekursive Definition einer Folge

Die Türme von Hanoi. Wollen

12. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Lernziele. Mathematische Rekursion. Rekursion in Java: Genauso! n! =

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Einführung - Parser. Was ist ein Parser?

Informatik I. Informatik I Iteration vs. Rekursion. Iteration vs. Rekursion Iteration vs. Rekursion. 20. Iteration vs.

Inhalt Kapitel 3: Induktion und Termination

Inhalt. 3. Spezielle Algorithmen

Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1)

11. Rekursion. 1, falls n 1. n (n 1)!, andernfalls. Mathematische Rekursion. Rekursion in Java: Genauso! Unendliche Rekursion. n!

Programmieren 1 C Überblick

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Rekursion. Beispiel Fakultät (iterativ) Rekursive Java-Implementierung. Beispiel Fakultät (rekursiv) n! = n

C++ - Kontrollstrukturen Teil 2

Institut fu r Informatik

Crashkurs Haskell Mentoring WiSe 2016/17. Anja Wolffgramm Freie Universität Berlin

Informatik I. Jan-Georg Smaus. Iteration vs. Rekursion. Iterativer Algorithmus Beweis der Korrektheit Python- Programm Zusammenfassung

ÜBUNGEN ZUR REKURSION

11. Rekursion, Komplexität von Algorithmen

9.1 Einführung. Stack (Forts.) Stack. rekursiv: (aus lat.) selbstbezüglich Algorithmen und Programmierung

Der Turm von Hanoi [als Java Applet]

Thüringer Kultusministerium

11. Rekursion. - Wiederholung von Anweisungen: durch Iteration und Rekursion - Anwendungsfälle der Rekursion

Kasparov versus Deep Blue. Till Tantau. Institut für Theoretische Informatik Universität zu Lübeck

Speicher und Adressraum

Aufgabenblatt: Methoden - rekursiv

ALLTAGSBEZOGENE UND ENTDECKENDE FUNKTIONEN

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Repetitive Strukturen

Komplexität von Algorithmen

Kapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration

Grundlagen der Programmierung (Vorlesung 15)

Unterprogramme. Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Rekursion. Sie wissen wie man Programme rekursiv entwickelt. Sie kennen typische Beispiele von rekursiven Algorithmen

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Induktion und Rekursion

Informationstechnik als Querschnittsthema gewerblich-technischer Facharbeit Modellieren, Programmieren, Adressieren, Konfigurieren, Kommunizieren

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter

Programmiertechnik Methoden, Teil 2

Teil 14: Rekursive Programmierung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

12. Rekursion Grundlagen der Programmierung 1 (Java)

9 Türme von Hanoi Bewege Stapel von links nach rechts. In jedem Zug darf genau ein Ring bewegt werden. Es darf nie ein größerer auf einen kleine

Einführung in die Informatik 1

Algorithmierung und Programmierung - immer aktuell. Material, S.54ff.

Problemlösen, ein Einstieg nicht nur für die Informatik

Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Algorithmen und Datenstrukturen"

Algorithmen und Datenstrukturen"

Die Ausgangsposition. Der aus drei Scheiben bestehende Turm steht auf Platz 1.

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet.

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21

Inhalt Kapitel 2: Rekursion

Transkript:

1) Das Treppenproblem Fachseminar Informatik Die Eingangstreppe des Max-von-Laue-Gymnasium mit 7 Stufen kann man auf verschiedene Arten hinaufgehen, z.b: Wie viele verschiedene Möglichkeiten gibt es, die Treppe hinaufzulaufen, wenn man mit jedem Schritt eine oder zwei Stufen nehmen kann? (1) Eine Treppe mit zwei Stufen erklimmt man auf zwei Arten, entweder mit einem Doppelschritt oder zwei Einzelschritten: (2) Treppe mit 3 Stufen: (3) Treppe mit 4 Stufen: (4) Treppe mit 5 Stufen: 1

2) Das Taxiproblem Fachseminar Informatik Ma sieht einen Stadtplan der Mannheimer Innenstadt. Wie viele verschiedene gleich lange Wege gibt es für einen Taxifahrer, von A nach B zu fahren? B A 3) Die Türme von Hanoi Im Großen Tempel von Benares, unter dem Dom, der die Mitte der Welt markiert, ruht eine Messingplatte, in der drei Diamantnadeln befestigt sind, jede eine Elle hoch und so stark wie der Körper einer Biene. Bei der Erschaffung der Welt hat Gott vierundsechzig Scheiben aus purem Gold auf eine der Nadeln gesteckt, wobei die größte Scheibe auf der Messingplatte ruht, und die übrigen, immer kleiner werdend, eine auf der anderen. Das ist der Turm von Brahma. Tag und Nacht sind die Priester unablässig damit beschäftigt, den festgeschriebenen und unveränderlichen Gesetzen von Brahma folgend, die Scheiben von einer Diamantnadel auf eine andere zu setzen, wobei der oberste Priester nur jeweils eine Scheibe auf einmal umsetzen darf, und zwar so, dass sich nie eine kleinere Scheibe unter einer größeren befindet. Sobald dereinst alle vierundsechzig Scheiben von der Nadel, auf die Gott sie bei der Erschaffung der Welt gesetzt hat, auf eine der anderen Nadeln gebracht sein werden, werden der Turm samt dem Tempel und allen Brahmanen zu Staub zerfallen, und die Welt wird mit einem Donnerschlag untergehen. (Quelle unbekannt) 2

Die drei Probleme im Unterricht Das Fundamentale bei der Rekursion ist, dass eine Problemreduzierung stattfindet: Ein Problem wird auf ein 1. leichter lösbares (vereinfachtes) Problem 2. derselben Art reduziert. 1 Diese Reduktion wird hier dadurch deutlich und erfahrbar gemacht, dass die Auseinandersetzung mit dem Problem und das Durchspielen einer Lösungsfindung für möglichst viele Ausgangswerte im Mittelpunkt der Betrachtung steht. Die fertige Funktion ist hier insofern Nebensache, als dass das Finden der eigentlichen rekursiven Funktion einen Schüler ohne Vorkenntnisse sicherlich überfordert. Daher kann z.b. beim Problem der Türme von Hanoi die Funktion im Unterricht problemlos vorgegeben werden, allerdings erst, nachdem die Schüler die Funktionsweise der rekursiven Lösungsfindung selber erfahren haben. Ziel des Unterrichts sollte es also sein, Schüler möglichst oft durch den rekursiven algorithmus zu schicken. Bei Problem Nr. 3 (Türme von Hanoi) habe ich mit dem beiliegenden Programm gute Erfahrungen gemacht, indem Schüler (auch zu Hause) erst einmal ausprobieren und Lösungen finden können. Zu achten ist hier besonders darauf, nicht Animationsprogramme mit automatischer Lösungsgenerierung oder Lösungsvisualisierung zu verwenden. Die Schülermotivation sinkt dadurch nicht unerheblich. An dieser Stelle wird nur auf die Probleme eins und drei genauer eingegangen. Das Taxiproblem kann äquivalent angegangen werden. 1) Das Treppenproblem Unterrichtsverlauf: 1. Schüler probieren selbst an einer Treppe, alle Mögllichkeiten für n = 1.. 5 zu finden (Arbeitsblatt) 2. Sammlung der Ergebnisse im Unterricht auf Folie (dieselbe Folie wie Arbeitsblatt), für jeden Fall nach Einzel und Doppelschritt am Anfang unterscheiden (hier blau) => Es wird deutlich, dass sich die Restschritte aus den beiden vorherigen Fällen zusammensetzen: 1 Vgl. dazu: Schubert Sigrid und Andreas Schwill. Didaktik der Informatik. Fundamentale Ideen. Spektrum Akademischer Verlag. Berlin 2004. S. 71 ff. Von Andreas Schwill ist auch die "Idee der Treppe" für die Fibonacci-Zahlen und deren Einbindung in den Unterricht übernommen. 3

Folie: 3. Verallgemeinerung der Beobachtung für alle n 4

4. Erstellen eines Aufrufbaumsbaums Fachseminar Informatik 5. rekursive Funktion finden und Programmieren Begriffe des Rekursionsaufrufs und direkter Fall (Rekursionsanker) deutlich machen (bzw. einführen). 3) Die Türme von Hanoi 1. Spiel spielen, Spielregeln ermitteln und nach Möglichkeit einen Turm von 6 (besser alle 7) Scheiben von A nach C transportieren 5

2. Am Beispiel von 4 Scheiben den Aufrufbaum vervollständigen 3 rekursive Prozedur wird vorgegeben, besprochen und von den Schülern im Rahmenprogramm umgesetzt: rekursive Prozedur procedure tuerme (n : integer; A,B,C : String); Begin if n > 1 then Begin tuerme (n-1, A, C,B); Form1.Listbox1.items.add('Bringe 1 Scheibe von ' + A + ' nach ' + C); tuerme (n-1, B, A, C); end else Form1.ListBox1.items.add('Bringe 1 Scheibe von ' + A + ' nach ' + C); end; Prozeduraufruf mit 4 Scheiben tuerme (4, 'Links', 'Mitte', 'Rechts'); Hinweis: ListBox arbeitet schneller als MemoBox, deshalb wird hier ne ListBox benutzt 4 Zeit abgreifen, Funktion aufstellen und Laufzeitanalyse machen. 5 den Rekursionsschritt für 7 Scheiben verbal formulieren: Bringe die obersten 6 Scheiben von A nach B unter Zuhilfenahme von C Bringe die unterste Scheibe direkt von A nach C Bringe die obersten 6 Scheiben von B nach C unter Zuhilfenahme von A 6

Wichtig: bei der Formulierung obersten 6 Scheiben wird deutlich, dass es sich hier um dasselbe Problem in reduzierter Form handelt. 6. Am Problem der Türme von Hanoi die Idee der informatischen Rekursion nochmal erläutern. Benutzte dazu die Definition der Rekursion benutzen: Definition Rekursion: Die informatische Rekursion ist die Reduktion eines Problems auf ein leichter lösbares Problem derselben Art. 7 Screenshot des fertigen Programms: 7