Die Türme von Hanoi

Im fernen Hanoi schlichten und schichten sie immer noch, die armen Mönche, und solange irgendwo auf der Erde Informatik unterrichtet wird, werden sie sicherlich auch keine Ruhe finden. Wie machen das die fleißigen Burschen eigentlich seit Millionen von Jahren? Also, wie gehabt: wir wollen die Scheiben vom Turm 1 auf den Turm 2 bringen, als Hilfe steht uns der Turm 3 zu Verfügung:

  • Wenn du nur eine Scheibe zu verschieben hast, dann geht's dir gut - mach' es einfach und du bist fertig.
  • Ansonsten aber:
    • Schiebe alle Scheiben außer der letzten mit Hilfe von Turm 2 von Turm 1 nach Turm 3
    • Dann hebe die letzte (größte) Scheibe vom Turm 1 auf Turm 2. Uff!
    • Zuletzt staple noch die Scheiben von Turm 3 mittels Turm 1 auf Turm 2
Fertig! War doch gar nicht so schwer, oder? Und hier ist sie, die (n+1)-te Implementierung:
#!/usr/bin/perl
use strict; use warnings;

scheibenschmeissen($ARGV[0], "1", "2", "3");

sub scheibenschmeissen {
  my ($n, $t1, $t2, $t3) = @_;
  if ($n == 1) {
    print "Scheibe von Turm $t1 auf Turm $t2\n";
  } else {
    scheibenschmeissen($n - 1, $t1, $t3, $t2);
    scheibenschmeissen(1, $t1, $t2, $t3);
    scheibenschmeissen($n - 1, $t3, $t2, $t1);
  }
}
So, und das nächste mal gibt's dann die Geschichte von dem Vogerl, das seinen Schnaberl alle 1000 Jahre einmal am Diamantberg wetzt, und dann wieder wegfliegt, und dann ...

Alle Touren

Schneebergwege

Raxsteige

Geführte Touren

Perl

Literatur

Musik