To my

>> Thus, the recent example with the Cryptarithm solver was a very
>> in-correct comparison, due to the unknown permutation generating
>> order.

Ralf Muschall  <[EMAIL PROTECTED]>  writes

> I did not study the problem in detail, but I think giving it
> an unsolvable puzzle would force it to try *all* permutations,
> thus eliminating the order problem.


Wise! Thank you.
(and how stupid i was)
Here it is:
--------------------------------------------------------------------
permutations :: [Z] -> [[Z]] 
            -- build the full permutation list given an ordered list
permutations []     = [[]]
permutations (j:js) = addOne $ permutations js 
                             where
                             addOne []       = []
                             addOne (ks:pms) = (ao ks)++(addOne pms)
 
                             ao []     = [[j]]
                             ao (k:ks) = (j:k:ks):(map (k:) $ ao ks)

main = putStr $ shows (any ((==0).sum) $ permutations [0..9]) "\n"
--------------------------------------------------------------------

So the puzzle is to find the permutation with the zero sum.

Compilation:   ghc-4.04  -c -fvia-C -O2 -O2-for-C  test.hs

Now, could the people, please, reproduce this C++ program?  
I have lost it. And i fear, can reach the letter archive only
tomorrow.

I propose to do the comparison first, on this example with the
permutation generating, then, on linear algebra - see my previous
letter.

And still, this  next_permutation  should be extracted from the C++
library, shown as the source C program, compiled from C and only then
run. Otherwise, the test may occur unfair.
 

------------------
Sergey Mechveliani
[EMAIL PROTECTED]







Reply via email to