Archive for the 'Rätsel' Category

Turm von Hanoi

Turm von HanoiVon mathegenius inspiriert möchte ich nun, wie dort angekündigt einige Überlegungen zum Turm von Hanoi anstellen und vorführen.
Wer die Legende noch nicht kennt, sollte sich diesen Artikel (von mathegenius) ansehen.
Etwas verallgemeinert werde ich in diesem Artikel Überlegungen für beliebig viele Scheiben anstellen, nicht nur für die ursprünglichen 64.
Eine Frage, die sich stellt ist natürlich die nach der Anzahl der nötigen Schritte.
Diese Frage wollen wir zunächst für einige wenige Scheiben beantworten, und dann verallgemeinern.

Wir benennen die drei Stapelplätze dafür zunächst mit A, B und C. Auf dem Platz A liegen die Scheiben in der Ausgangsposition, Ziel soll es sein, sie auf den Platz B zu verlegen. Die Scheiben seien mit 1 bis n benannt, je kleiner die Ziffer dabei ist, desto kleiner sei auch die Scheibe.

Für eine Scheibe ist die Lösung trivial, trotzdem sei sie hier genannt:
Man verschiebt einfach die Scheibe von A nach B.
Wir benötigen einen Schritt.

Auch zwei Scheiben sollten noch kein Problem darstellen:
A --> C
A --> B
C --> B

Dafür brauchen wir drei Schritte.

An die Aufgabe, einen Turm aus drei Scheiben zu verschieben wollen wir systematischer herangehen.
Wie machen wir das?
Naja, wenn wir es irgendwie schaffen könnten, die untere, größte Scheibe auf den Platz B zu befördern, hätten wir unser Problem reduziert. Nun müssten nur noch die beiden Scheiben von A nach B verschoben werden – die Lösung dafür haben wir schon.
Also gut, wir haben den Plan, die große Scheibe auf Platz B zu bringen. Was müssen wir dazu tun? Klar, der Platz B darf nicht belegt sein. Außerdem muss die große Scheibe zum Bewegen frei sein. Wohin mit den Scheiben 1 und 2?
Hm, Glück gehabt, Platz C ist noch nicht benutzt in unserem Gedankenspiel!
Das einzige, was noch zu erledigen ist, ist nun also, die beiden kleineren Scheiben auf Platz C zu verlegen.
Auch das ist aber nicht schwierig – wie man zwei Scheiben verschiebt wissen wir schließlich.
Aber funktionieren auch alle unsere Schritte, ist zwischendurch vielleicht doch ein Platz belegt, den wir vergessen haben?
Versuchen wir einfach mal, alles zusammen zu puzzeln.

  1. Verschiebe die beiden oberen Scheiben nach C.
    Das geht in jedem Fall, wir ignorieren einfach die unterste Scheibe und führen dann unsere Lösung für zwei Scheiben durch – wobei natürlich C statt B zu benutzen ist.
  2. Lege die große Scheibe von A nach B.
    Das geht auch, schließlich liegen die anderen beiden Scheiben auf C.
  3. Verschiebe die beiden Scheiben von C nach B.
    Auch das funktioniert wieder, mit der Lösung für zwei Scheiben.

Wieviele Verschiebungen benötigen wir nun dafür?
Für den ersten Schritt sind es drei, wie wir zuvor herausgefunden haben.
Der zweite Schritt ist nur eine einzige Verschiebung.
Und der dritte Schritt ist wieder eine Bewegung von zwei Scheiben, benötigt also insgesamt ebenfalls drei einzelne Verschiebungen.
Zusammen macht das also sieben Züge.

Aber mit vier Scheiben wird es vielleicht etwas kniffliger. Schließlich können die vier Scheiben ja auch einen Platz mehr blockieren – oder?
Probieren wir einfach mal das gleiche System aus, wie bei drei Scheiben:

  1. Verschiebe die drei oberen Scheiben von A nach C.
    Hm. Das ist lösbar, haben wir ja schon gesehen.
    Wir benötigen sieben Verschiebungen.
  2. Verschiebe die vierte Scheibe auf Platz B.
    Auch das ist möglich, die anderen Scheiben liegen ja auf Platz C. Machbar in einer einzigen Bewegung.
  3. Zum Abschluss, verschiebe die drei Scheiben, die auf C zwischengelagert waren auch nach B.
    Das kostet wiederum sieben Schritte.

Insgesamt brauchen wir also 2 \cdot 7 + 1 = 15 Züge.

Das sollte erstmal reichen. Jetzt versuchen wir noch, das Prinzip ganz allgemein zu beschreiben.
Dabei wollen wir auch sofort herausfinden, wie viele Züge nötig sind.
Führen wir dafür erstmal eine Benennung ein:
Sei also S(n) die Anzahl der Schritte, die benötigt werden, um n Scheiben zu verschieben.

Nun stellen wir uns vor, wir haben einen Turm aus n Scheiben. Für n = 1 geben wir die triviale Lösung vor, alle weiteren Fälle wollen wir jetzt induktiv lösen.
Dazu nehmen wir an, dass wir den Wert von S(n - 1) kennen. Auch wie wir die n - 1 Scheiben von einem Platz auf den anderen verschieben setzen wir als bekannt voraus.

Jetzt soll es aber auch losgehen, wir beschreiben unser Verfahren:

  1. Wir schieben mit dem bekannten Verfahren für n - 1 Scheiben die obersten Scheiben von Platz A nach C.
    Dafür benötigen wir genau S(n - 1) Schritte.
  2. Wir legen die größte, gewissermaßen die “neue”, Scheibe auf Platz B.
    Das kostet eine einzige Verschiebung.
  3. Nun bewegen wir den hohen Stapel von C nach B, wofür wiederum S(n - 1) Züge nötig sind.

Damit haben wir aus der Lösung für n - 1 Scheiben eine Lösung für $$n$$ Scheiben erhalten!
Weil wir die (schnellste) Lösung für n = 1 schon kennen, finden wir also auch eine Zugfolge, um 2 Scheiben zu bewegen.
Daraus entwickeln wir dann den Weg für 3 Scheiben, woraus wiederum derjenige mit 4 Scheiben gefunden wird.
So geht es immer weiter, ad infinitum.
Großartig, wir können nun also den Turm von Hanoi lösen, und das für beliebig viele Scheiben!

Auch die Anzahl können wir bestimmen. Schließlich gilt, wie wir gerade gesehen haben, S(n) = 2 \cdot S(n - 1) + 1.
Daraus kann man S(n) = 2^n - 1 finden. Dass dieser Wert tatsächlich stimmt, ist noch etwas einfacher zu zeigen, als ihn herzuleiten; nämlich mit unserer Induktion.
Denn:
S(n) = 2 \cdot S(n - 1) + 1 = 2 \cdot (2^{n-1} - 1) + 1 = 2^n - 2 + 1 = 2^n - 1

Also ist diese Formel tatsächlich richtig.

Für die in der Legende genannten 64 Scheiben benötigt man daher S(64) = 2^{64} - 1 = 18.446.744.073.709.551.615 \approx 18 \cdot 10^{18} Verschiebungen.
Würde für jeden Zug eine Sekunde benötigt, so dauerte das Unterfangen (falls es nicht pausiert würde) etwa 584.942.417.355 Jahre an. Das entspricht den auch von mathegenius genannten 5,8 Milliarden Jahrhunderten [bis zum Ende des Universums ;)].
Unvorstellbar!

Rätsel: Kopfrechnen

Im “PatzBlatt”, der Zeitschrift der Einzelmeisterschaften der Schachjugend NRW, fand sich letzte Woche folgendes Rätsel.

Man kombiniere die Zahlen 1, 5, 6 und 7 in beliebieger Reihenfolge mit den Grundrechenarten um als Ergebnis 21 zu erhalten. Klammern setzen ist natürlich erlaubt. Wie geht das?

Die theoretisch durchaus interessante Lösung habe ich mit Hilfe eines Python-Skripts gefunden. Nach einigem “Kopfrechnen” und logischen Schlüssen darauf zu stoßen ist aber mit Sicherheit eleganter und wertvoller. Wenngleich das nicht ganz einfach ist möchte ich euch diese Knobelei nicht vorenthalten.

Viel Spaß beim Kopfzerbrechen!

Das Königsberger Brückenproblem

Rücken Sie Ihre Sitzgelegenheit zurecht, machen Sie es sich bequem, seien Sie bereit für eine virtuelle Zeitreise; wir begeben uns zurück ins 18. Jahrhundert.

Wir befinden uns jetzt im damaligen Königsberg (heute Kaliningrad). Nach einem gemütlichen Spaziergang durch die Stadt kommen wir schließlich an den Pregel. Wir überqueren eine der sieben Brücken und stehen inmitten der sogenannten Kneiphof-Insel.

Ein älterer Mann kommt auf uns zu und bietet eine Wette: “Schaffen Sie es, jede der sieben Brücken genau einmal zu passieren und am Ende wieder hier an ihrem Ausgangspunkt zu landen? Ich biete einen Reichstaler.” (Anm.: Kaufkraft im 18.Jh etwa 15€)

Lageskizze der Königsberger Brücken

Lageskizze der Königsberger Brücken

Sollten Sie diese Wette annehmen?

Natürlich nicht! Es ist unmöglich, einen solchen Weg zu finden. Doch warum? Und wie lässt sich das beweisen? (Diese beiden Fragen hängen oft eng miteinander zusammen.)

Setzen wir zur Auflösug unseren Stadtrundgang fort. Wir kommen zu einem kleinen Haus, irgendwo in Königsberg. Es ist das Haus Leonhard Eulers, einer der größten Mathematiker der Geschichte. Euler war es, der unsere Fragen im Jahre 1736 beantworten konnte.

Dazu tat er etwas für die Mathematik seiner Zeit noch recht ungewöhnliches: Er ließ die genauen Details des Brückenplans weg und untersuchte nur ihre Struktur, die Beziehung der Wege untereinander. Die genauen Maße der Wege waren uninteressant.

So wandelte Euler das praktische Problem um in eines der Graphentheorie, dessen Anfang heute bei diesen Entdeckungen Eulers gesehen wird. Er verwandte neue Begriffe, die “Knoten” und die “Kanten”, die zusammen einen Graphen bilden.

Graph der Königsberger Brücken

Die Knoten sind dabei die vier zu erreichenden Teile der Stadt; die Kanten als Verbindungen zwischen den Knoten stellen unsere Brücken dar.

Gesucht ist nun ein Weg, der bei demselben Knoten beginnt und endet und dabei jede Kante genau einmal benutzt.

Wir sehen schnell, dass an jedem der Knoten eine ungerade Anzahl von Kanten liegt (man spricht von einem ungeraden Grad der Knoten). Ein Knoten, der zugleich Start- und Endknoten unserer Reise ist, müsste allerdings einen geraden Grad besitzen, ansonsten muss mindestens eine Brücke zweimal überquert werden. Das ist uns jedoch nicht erlaubt, wir können also keinen solchen Weg finden.

(Für eine sehr gut gestaltete nähere Erläuterung des Themas siehe http://www.matheprisma.uni-wuppertal.de/Module/Koenigsb/)

Primzahlen mit über 10 Millionen Dezimalstellen

Soeben las ich in Günter Zieglers Blog, dass vor kurzem vom GIMPS-Projekt zwei Primzahlen mit jeweils weit über 10 Millionen Dezimalstellen gefunden worden sind.

Der technische Fortschritt macht selbst bei solchen Riesen nicht halt, und trotzdem gibt es noch immer keine Möglichkeit, Primzahlen in irgendeiner Weise exakt berechnen zu können. Durch (kluges) Ausprobieren finden wir neue, immer größere Primzahlen, doch irgendeine Regel oder Ordnung lässt sich nicht erkennen.

Scheinbar zufällig liegen diese Grundbausteine der Arithmetik chaotisch verteilt in der unendlichen Menge der  Zahlen. Seit über 2000 Jahren kennen wir sie, seit über 2000 Jahren sind sie eines der größten Rätsel, seit über 2000 Jahren sträuben sie sich gegen jeden Versuch einer exakten Darstellung.

Faszinierend!

(Inspiriert auch von “Die Musik der Primzahlen” (oder als Taschenbuch) von Marcus du Sautoy)

Paradoxes Fahrrad-Rätsel

Fahrrad

Stellen Sie sich vor, Sie nehmen an einem Fahrrad-Rennen teil. Die Strecke besteht aus zwei Runden irrelevanter Länge, eine davon haben Sie bereits absolviert. Bisher beträgt Ihre Durchschnittsgeschwindigkeit 20 km/h, Sie hatten sich aber vorgenommen, nach dem gesamten Rennen mit einer durchschnittlichen Geschwindigkeit von 40km/h ins Ziel zu gelangen.

Wie schnell müssen Sie also nun in der zweiten Runde fahren, um diese Wunsch-Gesamtgeschwindigkeit zu erreichen?

Plausibel erscheinen zunächst 60km/h.

Doch ganz so einfach ist es natürlich nicht. In Wahrheit können Sie das Rennen gar nicht mehr mit der gewünschten Durchschnittsgeschwindigkeit von 40km/h beenden! Egal, wie kräftig Sie in die Pedale treten, eine Gesamt-Durchschnittsgeschwindigkeit von 40km/h zu erreichen ist unmöglich!

Warum? Nunja, für die erste Hälfte der Strecke benötigten Sie 20km/h. Wenn wir die Streckenlänge mit s bezeichnen gilt also für die benötigte Zeit t = \frac{1}{2}s : 20 \text{km/h} = \frac{1}{40}\text{km/h} \cdot s. Um das Ziel mit einer Geschwindigkeit von 40km/h zu erreichen, müssten Sie für die beiden Runden zusammen jedoch ebenfalls t = s : 40\text{km/h} = \frac{1}{40}\text{km/h} \cdot s benötigen; die zweite Runde müssten Sie also in 0 Sekunden absolvieren, was nicht nur praktisch unmöglich ist!

Genau so verhält es sich natürlich, wenn Sie bereits 99 von 100 Runden mit einer Geschwindigkeit von 99km/h gefahren sind und 100km/h erreichen möchten.