[Haskell-beginners] tower hanoi problem

Roelof Wobben r.wobben at home.nl
Mon Feb 16 07:59:41 UTC 2015


Thanks,

My way of working is one problem at the time.
So first solve the itterate one and after that I gonna try to solve the 
recursion one.
Otherwise I get confused.

Roelof



Dudley Brooks schreef op 15-2-2015 om 21:54:
> In my opinion, advising Mr Wobben to watch the pattern of moves will 
> *not* lead him to the recursive solution, since the pattern of moves 
> is really iterative.
>
> My hint would be to remember the very nature of recursion itself (for 
> *any* problem):  Do the first step.  Then (to put it very 
> dramatically) do *everything else* in *a single step*!  (Realizing 
> that "everything else" is really the same problem, just made slightly 
> smaller.)
>
> Note:  "A single step" might itself have more than one step.  My point 
> is that recursion consists of (to put it humorously):  To do 
> ABCDEFGHIJKLMNOPQRSTUVWXYZ, first you do A, then you do 
> BCDEFGHIJKLMNOPQRSTUVWXYZ.  And, of course, "first" might actually be 
> "last"!  And remembering the story of the Gordian Knot might help 
> too.  (I apologize that trying not to be too explicit in the hint 
> possibly makes it even more obscure.)
>
> Here's another hint that's useful for all kinds of programming 
> problems, not just recursion:  Most problems consist of not only what 
> you're trying to solve, but also what the restrictions are on what 
> you're allowed to do to solve it.  Often some good insights come from 
> imagining how you could solve the problem if you could ignore one or 
> more of the restrictions (that's what I meant by the Gordian Knot 
> reference).  So for the Towers of Hanoi, think about what the 
> restrictions are on what kind of moves you're allowed to make.  Remove 
> one of those restrictions.
>
> (Speaking of the iterative solution, the fun thing about actually 
> physically doing the Towers of Hanoi is that, even though you're doing 
> it by remembering the steps of the iterative pattern, as you watch the 
> towers grow and shrink you can kind of "see" the recursion.)
>
> On 2/15/15 12:51 AM, Roelof Wobben wrote:
>> YCH schreef op 15-2-2015 om 9:45:
>>> How about if I say "Actually target was c not b and here is one more
>>> disc. I put it on a. Now you should move all to c"
>>>
>>>
>>
>> Hanoi 1 a b c
>>
>> A -> C
>>
>> Hanoi 2 a b c
>>
>> A -> B
>> A -> C
>> B -> C
>>
>> Hanoi 3 a b c
>>
>> A -> C
>> A -> B
>> C -> B
>> A -> C
>> B -> A
>> B -> C
>> A -> C
>>
>>
>> Roelof
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>



More information about the Beginners mailing list