Türme von Hanoi vollständige Induktion – Aufgabe + Lösung

Aufgabe

Behauptung: Die Türme von Hanoi-Aufgabe mit n Scheiben
erfordert 2n − 1 Züge zu deren Lösung.

1. Beweisen Sie die Behauptung per vollständiger Induktion.
2. Warum ist das Argument, dass ein fiktives Java-Programm nach
2n − 1 Zügen fertig ist, kein Beweis der Behauptung?

Lösung

1. Induktionsanfang.

Zu zeigen, die Behauptung gilt für n = 1.

Eine Scheibe (n = 1) erfordert einen Zug (21 − 1 = 1) .

Induktionsannahme
Es gibt ein n, sodass die Behauptung f¨ur alle Zahlen kleiner gleich n gilt.

Induktionsschritt
Zu zeigen, mit der Induktionsannahme, gilt die Behauptung auch für n + 1.
Die Darstellung mit Originalplatz (O), Hilfsplatz (H) und Zielplatz (Z),
ist wie folgt.

Türme von Hanoi Induktion Aufgabe+Lösung

Türme von Hanoi Induktion Aufgabe+Lösung

Die Aufgabe, einen korrekten Turm (Scheiben werden von oben nach unten kleiner)
für die obersten n Scheiben vom Orignialplatz O, mit interims Hilfsplatz Z auf den
interims Zielplatz H zu uberführen in 2n −1 Schritten lösbar, laut Induktionsannahme.
Ein Schritt braucht man um die Scheibe n+1, die noch auf O liegt nach Z zu legen.
Mit Induktionsannahme braucht man nocheinmal 2n − 1 Schritte um den Turm aus
n Scheiben vom interims Originalpaltz H mit interims Hilfsplatz O auf den Zielplatz
Z (wo die Scheibe n + 1 schon liegt) zu uberführen
Macht 2n − 1 + 1 + 2n − 1 = 2 · (2n − 1) + 1 = 2n+1 − 2 + 1 = 2n+1 − 1 Schritte.

Thats it! :-)

EBNF – Extended Backus–Naur Form Beispielaufgabe

Wir betrachten eine einfache Sprache als eine Menge von Zeichenfolgen. Mit EBNF können nicht nur Programmiersprachen sondern auch solche einfachen Sprachen beschrieben werden.

1. Geben Sie ein EBNF Beschreibung f¨ur folgende Sprachen an.
a) Die Sprache aller nat¨urlichen Zahlen in denen die Ziffer 9 genau einmal enthaltenist.

b) Die Sprache aller nat¨urlichen Zahlen die durch 5 teilbar sind.

c) Die Sprache aller nat¨urlichen Zahlen die durch 4 teilbar sind.

2. Es seien die boolschen Variablen A, B, C und die in der Vorlesung besprochenenOperatoren ^, _, ¬ sowie die Klammerung () gegeben.

Geben Sie die Syntax aller gültigen boolschen Ausdrücke mit den angegebenen Variablenund Operatoren in EBNF an.

Lösung:

1. a) <S> ::= ( “9″ {“1″|”2″|”3″|”4″|”5″|”6″|”7″|”8″|”0″} )
| ( (“1″|”2″|”3″|”4″|”5″|”6″|”7″|”8″){“1″|”2″|”3″|”4″|”5″|”6″|”7″|”8″|”0″}”9″ {“1″|”2″|”3″|”4″|”5″|”6″|”7″|”8″|”0″} )

b) <S> ::= “5″ | ( (“1″|”2″|”3″|”4″|”5″|”6″|”7″|”8″|”9″)
{“1″|”2″|”3″|”4″|”5″|”6″|”7″|”8″|”9″|”0″}(“0″|”5″) )

c) <S> ::= “4″ | “8″
| <V0> “0″ | <V0> “4″ | <V0> “8″ | <V1> “2″ | <V1> “6″<V0> ::= “2″ | “4″ | “6″ | “8″| <T> “0″ | <T> “2″ | <T> “4″ | <T> “6″ | <T> “8″<V1> ::= “1″ | “3″ | “5″ | “7″ | “9″| <T> “1″ | <T> “3″ | <T> “5″ | <T> “7″ | <T> “9″<T> ::= (“1″ | … | “9″) { “0″ | “1″ | … | “9″}

2. <S> ::= <Term>
<Term> ::= <Var> | (“¬” <Term>) | (<Term> <Op> <Term>) | (“(“<Term>”)”)<Var> ::= “A” | “B” | “C”<Op> ::= “_” |”^”

Wir betrachten (f¨ur diese Aufgabe) eine einfache Sprache als eine Menge von Zeichenfolgen.
Mit EBNF k¨onnen nicht nur Programmiersprachen sondern auch solche einfachen Sprachen
beschrieben werden.