[Haskell-beginners] hanoi 4 problem

Sumit Sahrawat, Maths & Computing, IIT (BHU) sumit.sahrawat.apm13 at iitbhu.ac.in
Thu Feb 19 17:27:54 UTC 2015


What you did recursively is ...

   - Move (n - 1) from peg1 to peg3
   - Move 1 from peg1 to peg3
   - Move (n - 1) from peg1 to peg3

.. which is not what you want. Keep thinking, you will get it.
Some things to consider:

   - Distribute the discs on two intermediates.
   - Keep track of the order in which discs are assembled on the
   intermediates.
   - Move 1 disc from peg1 to peg4.
   - Then, move the distributed discs back in the reverse order from how
   you put them there.

By keeping track, I mean keep track of which peg is filled first.
Hope this helps.

On 19 February 2015 at 19:20, Roelof Wobben <r.wobben at home.nl> wrote:

> Hello,
>
> I try now to make the optional exercise hanoi with 4 pegs,
>
> So I did on paper this :
>
> start               temp1               temp2                  end
>
> 3
> 2
> 1
>
> first move  :  start -> temp2
>
> start               temp1           temp2 end
> 2                                              3
> 1
>
> second move : start -> temp1
>
> start                  temp1       temp2                      end
> 1                        2                  3
>
> now I tried to make this piece in code
>
> So I did :
>
> hanoi4 1 start _  _ end = "move 1 disk from " ++ [start] ++ " to " ++
> [end] ++ ".\n"
> hanoi4 n start temp1 temp2 end = hanoi4 (n-1) start end temp1 temp2 ++
> hanoi4 1 start end temp1 temp2 ++ hanoi4 (n-1) start  temp1 end temp2
>
> because on the first step   start must be  start and  end must be temp1
> and on the second step start must be start and end must be temp2
>
> but when I run in I see this output :
>
> move 1 disk from a to b.
> move 1 disk from a to b.
> move 1 disk from a to b.
> move 1 disk from a to c.
> move 1 disk from a to d.
> move 1 disk from a to d.
> move 1 disk from a to d.
>
> Can anyone explain or let me see where my thinking took the wrong turn ?
>
> Roelof
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>



-- 
Regards

Sumit Sahrawat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150219/dc6e79b6/attachment.html>


More information about the Beginners mailing list