www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Haskell" - Türme von Hanoi
Türme von Hanoi < Haskell < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Haskell"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Türme von Hanoi: Lösung?
Status: (Frage) beantwortet Status 
Datum: 10:40 Mi 10.01.2007
Autor: nieselfriem

Aufgabe
Geben Sie eine Haskellimplementierung hanoi :: Int -> Int -> Int -> [(Int,Int)] an,
die die Spielzüge zur Lösung des Problems der Türme von Hanoi berechnet. Dabei soll hanoi n x y = l
die Spielzüge, die benötigt werden, um einen Turm der Höhe n von Platz x auf Platz y zu bewegen, in
der Liste l ablegen. l besteht aus Tupeln (a, b), wobei ein solches Tupel bedeutet, dass die oberste
Scheibe von Platz a auf den Platz b bewegt werden muss.
Geben Sie durch schrittweises Ausrechnen von hanoi 3 1 3 an, wie ihre Implementierung die
Spielzüge berechnet.

Nun habe ich eine Implementierung in Haskell mit folgender Deklaration
--n Anzahl der Scheiben
--s Startturm
--z Zielturm
--h Hilfsturm
bewege::Int->Int->Int->Int->[(Int,Int)]
bewege 0 s z h     = []
bewege n s z h    = bewege (n-1) s  z
       ++ [(s,z)]
       ++ bewege (n-1) h z s
Mein Problem ist das wir in unserer Aufgabe bei der vorgegebenen Deklararion kein Hilfsturm angeben haben sondern nur die Anzahl der Scheiben und Start und Zielturm. Wie soll das gehen??

Gruß georg

        
Bezug
Türme von Hanoi: Antwort
Status: (Antwort) fertig Status 
Datum: 11:27 Mi 10.01.2007
Autor: Frank05


>  Mein Problem ist das wir in unserer Aufgabe bei der
> vorgegebenen Deklararion kein Hilfsturm angeben haben
> sondern nur die Anzahl der Scheiben und Start und Zielturm.
> Wie soll das gehen??

Ich glaub ich verstehe dein Problem nicht so richtig. Es gibt ja nur 3 Türme.. wenn einer der Startturm und einer der Zielturm ist, dann fällt die Wahl des Hilfsturm recht einfach. Schreib doch noch eine zusätzliche Regel, die dir aus den zwei gegebenen Türmen noch schnell berechnet welcher Turm dann als Hilfsturm verwendet werden kann und kombinier das dann mit dem was du schon hast. Und beides zusammen ist dann die Lösung.

MfG,
Frank

Bezug
                
Bezug
Türme von Hanoi: Zusatz
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:29 Mo 09.07.2007
Autor: xenos

Das "Turm von Hanoi" - Problem ist für mehr als eine Scheibe je Turm nicht mehr unbedingt lösbar, wenn kein Hilfsturm benutzt wird und sogar unlösbar, wenn es einen Turm mit mindestens zwei und einen weiteren mit mehr als einer Scheibe und keinen Hilfsturm gibt. Deshalb wird dieses Problem im Allgemeinen immer mit drei Türmen (einem Startturm, einem Zielturm und einem Hilfsturm mit Null Scheiben) betrachtet. Ich denke, dies ist auch in dieser Aufgabenstellung der Fall.

Viele Grüße, Xenos.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Haskell"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]