some OT: how to solve this kind of problem in our program?
Paul McGuire
ptmcg at austin.rr._bogus_.com
Tue Dec 26 17:24:21 EST 2006
"Gabriel Genellina" <gagsl-py at yahoo.com.ar> wrote in message
news:mailman.2030.1167165642.32031.python-list at python.org...
> 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...)
>
>
> --
> Gabriel Genellina
> Softlab SRL
Der, I was thinking 9 times 362880, not 326880 P 9. Thanks for
straightening me out!
10**50 was a good ballpark guess. My permutation calculator says that
362880 items taken 9 at a time yields
109099864394915605737486658299863377337267988480000 permutations (~10**50).
I assume the smaller Wikipedia number (6.7*10**21) factors in the additional
column and box constraints. So I guess we can rule out brute force as a
viable strategy after all.
-- Paul
More information about the Python-list
mailing list