http://qs321.pair.com?node_id=401670


in reply to Re: Hanoi Challenge
in thread Hanoi Challenge

It can be done more efficiently than this. You shouldn't divide the work up evenly. Below are some special cases and the smallest solution sizes possible (I believe) for them.

If P is the number of pegs, D is the number of disks, and M is the minimum number of moves for which a solution exists, then:

for P >= 3 if D = P*(P-1)/2 then M = P*(P-2)*2+1 so P=3, D=3, M=7 P=4, D=6, M=17 P=5, D=10, M=31 P=6, D=15, M=49 ...

So I can beat your 35-move solution for the 5P10D case by 4 moves.

I may write up why this is so, but I suspect someone else is likely to beat me to that. And if you try to figure out why I picked these cases, you'll probably have a good hint for part of a good solution for the general problem. (:

- tye        

  • Comment on Re^2: Best possible counts for a few test cases (in readmore) (Hanoi Challenge)
  • Download Code

Replies are listed 'Best First'.
Re^3: Best possible counts for a few test cases (in readmore) (Hanoi Challenge)
by blokhead (Monsignor) on Oct 22, 2004 at 20:30 UTC
    I was just realizing something along these lines. It would be better to give a larger proportion of disks to the subpiles which will have more scratch space. How much more, I don't exactly know (yet). I've been trying to come up with a simple way to minimize the recurrence for the general case, but no luck.

    If all else fails, you could search through all partitions of N-1 to find the best subproblem split, but that's no fun ;)

    blokhead