[Haskell-cafe] Re: The Knight's Tour: solutions please

ChrisK haskell at list.mightyreason.com
Tue Dec 2 07:39:13 EST 2008


Hmmm... it seems that n=63 is a special case.

oleg at okmij.org wrote:
> Yes, there is a solution for n=99 and for n=100 for that matter --
> which can be found under one second. I only had to make a trivial
> modification to the previously posted code
> 
>> tour n k s b | k > n*n   = return b
>>              | otherwise = do next <- (foldr mplus mzero).map return $ successors n b s
>>                               tour n (k+1) next $ insrt next k b
> 
> I replaced foldl1 mplus with foldr mplus zero.
> 

The old version sees no solution to n=63 quite quickly:

> time nice ./fromwiki-63 63
> fromwiki-63: Prelude.foldl1: empty list
> 
> real	0m0.285s
> user	0m0.172s
> sys	0m0.026s

The version with the 'tour' given above does not halt after running up to 0.4 GB 
of RAM, so I killed it.

Though having no solution may be tied to starting in the corner.

-- 
Chris



More information about the Haskell-Cafe mailing list