some OT: how to solve this kind of problem in our program?

John Krukoff jkrukoff at ltgc.com
Tue Dec 26 15:58:46 EST 2006


On Tue, 2006-12-26 at 17:39 -0300, Gabriel Genellina wrote:
> At Monday 25/12/2006 21:24, Paul McGuire wrote:
> 
> >For example, for all the complexity in writing Sudoku solvers, there are
> >fewer than 3.3 million possible permutations of 9 rows of the digits 1-9,
> >and far fewer permutations that match the additional column and box
> >constraints.  Why not just compute the set of valid solutions, and compare
> >an input mask with these?
> 
> Are you sure? There are 9!=362880 rows of digits 1-9; taking 9 of 
> these at random gives about 10**50 possibilities. Of course just a 
> few match the additional constraints. Maybe you can trivially reduce 
> them (just looking for no dupes on the first column) but anyway its a 
> laaaaarge number... (Or I'm wrong computing the possibilities...)
> 
> 
> -- 
> http://mail.python.org/mailman/listinfo/python-list

Fortunately, somebody has already written a paper on the subject:
http://www.afjarvis.staff.shef.ac.uk/sudoku/sudoku.pdf

It looks like the number is actually rather large, and I'd expect even
with a specialized data structure for compression (probably some kind of
tree with bitwise digit packing?) would not fit in memory on any box I
own.

I would wonder if loading that much data isn't slower than solving the
puzzle.
-- 
John Krukoff <jkrukoff at ltgc.com>
Land Title Guarantee Company




More information about the Python-list mailing list