[Updata: mam już lepsze rozwiązanie, które radzi sobie jak mi się wydaje ze wszystkimi Sudoku i to w bardzo krótkim czasie :-)]
Już wiem czemu moje poprzednie rozwiązania były takie sobie...
Za sprytny chciałem być ;-)
Przy każdym kroku generowałem listę wszystkich możliwych w danym momencie "zajętości" pól i dla każdego z takich kandydatów robiłem kolejny krok...... to oznaczało, że przytłaczająca większość "kroków" była powtarzana po wielokroć.
A wystarczy nie kombinować i w każdym kroku zajmować się tylko 1 polem... I wtedy wszystko działa :-)
Ta wersja wzbogaciła się o "moduł" importu, dzięki niemu można do rozwiązywarki wrzucać różne przygotowane wcześniej przykłady. Pomysł jest od WildWezyra z jego Sudoku Solvera, z tym, że u mnie działa na odwrót :-)
Nie jest to jeszcze demon prędkości, ale to tylko dlatego, że korzystam nadal z kodu, który generuje listę kandydatów dla wszystkich pól i dopiero na końcu po posortowaniu ich wg. tego, które jest najbardziej "unikatowe" odrzucam z rozważań wszystkich kandydatów, którzy nie dotyczą tego pola, które jest najbardziej unikatowe.
Kolejny raz mam lekcję, że nie należy kombinować ;-)
Podobne postybeta
Sudoku - atak pierwszy wersja 2 ;-)
Sudoku - przyśpieszamy, ale jeszcze nie za bardzo ;-)
Sudoku - rozwiązanie doskonałe ;p
Sudoku - atak pierwszy ;-)
Sudoku solver - dalsza walka ;-)
czwartek, marca 10, 2011
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz