Towers of Hanoi

greenspun.com : LUSENET : Grundlæggende Programmering F2001 : One Thread

Hej Jeg sidder lige og kigger lidt på towers of hanoi eksemplet i kapitel 11 i grundbogen. hvordan kan deres program sikre, at en større disk ikke bliver lagt ovenpå en mindre (det var jo forbudt ifølge oplægget)?? Det kan jeg ikke helt gennemskue (håber ikke du synes spørgsmålet er irrelevant) mvh Louise

-- Louise (louise@trolle.dk), March 15, 2001

Answers

Ideen i grundbogen er den samme som til forelæsningen (se definitionen af moveTower side 481 i bogen), nemlig: vi flytter numDisks fra "start" til "end" via "temp" ved at flytte numDisks - 1 fra "start" til "temp" via "end" -- herefter der kun een skive på "start" og der er ingen på "end", så vi kan flytte skiven fra "start" til "end" uden at overtræde reglerne om at vi ikke må lægge en større skive oven på en mindre. Nu har vi så numDisks - 1 skiver på "temp", og een skive (nemlig den største) på "end" og kan nu flytte numDisks - 1 skiver fra "temp" til "end" via "start" uden at overtræde reglerne (for alle de numDisks - 1 skiver er jo mindre end den største skive som ligger på "end"). Håber dette hjælper, -- Lars

-- Lars Birkedal (birkedal@it-c.dk), March 15, 2001.

Moderation questions? read the FAQ