Completamente de acuerdo, desde luego la forma correcta sería mantener diversas estructuras en memoria y, sobre todo, darse cuenta antes de poner un número de las posibles soluciones que existen. Por esa parte, la solución en Python es "más elegante".
Respecto a la solución que yo empleé, para empezar los números que te daban como datos estaban marcados como "fijos" en la matriz. Después empleaba simplemente un poco de recursividad: mientras fuera bien, ibamos poniendo números hacia adelante. Cuando encontrabamos uno mal, volvíamos sólo una unidad hacia atrás, y sumábamos uno (hasta el siguiente posible teniendo en cuenta fila/columna/recuadro). De esta forma en los Sudokus difíciles se podían emplear varias decenas de miles de "movimientos" antes de resolverlo, pero hacerlo lo hacía.
Didácticamente mi solución es bastante pobre, pero en su día tenía intenciones de mejorarlo y dotarle de un poco de inteligencia (observar los recuadros contiguos para conocer qué números eran posibles, etc). Sin embargo, entre la pifia del Eclipse y que me puse con otras cosas, nunca pude continuarlo!
-- CATS: ALL YOUR BASE ARE BELONG TO US txana [txana.net]
Re:¡¡¡100 lineas!!!
(Puntos:2)( http://www.txana.net/ | Última bitácora: Viernes, 11 Julio de 2008, 13:07h )
Respecto a la solución que yo empleé, para empezar los números que te daban como datos estaban marcados como "fijos" en la matriz. Después empleaba simplemente un poco de recursividad: mientras fuera bien, ibamos poniendo números hacia adelante. Cuando encontrabamos uno mal, volvíamos sólo una unidad hacia atrás, y sumábamos uno (hasta el siguiente posible teniendo en cuenta fila/columna/recuadro). De esta forma en los Sudokus difíciles se podían emplear varias decenas de miles de "movimientos" antes de resolverlo, pero hacerlo lo hacía.
Didácticamente mi solución es bastante pobre, pero en su día tenía intenciones de mejorarlo y dotarle de un poco de inteligencia (observar los recuadros contiguos para conocer qué números eran posibles, etc). Sin embargo, entre la pifia del Eclipse y que me puse con otras cosas, nunca pude continuarlo!
CATS: ALL YOUR BASE ARE BELONG TO US
txana [txana.net]