Wdrożyłem kolejną metodę 'Fireworks'.
Teraz pracuję nad metodą 'Pętle SK'.

email: darw32@poczta.onet.pl

Sudoku - Techniki Rozwiązywania

Pusty Prostokąt (Empty Rectangle)

Pusty Prostokąt (ang. Empty Rectangle) jest to metoda raczej prosta, którą stosuje sie dla diagramów sudoku 9x9. Polega ona na znalezieniu takich czterech pozycji w jakimś bloku "nBox", które tworzą prostokąt i które są wypełnione lub nie zawierają kandydata "nVal", pczy czym można znaleźć dla danego bloku i jakiejś wartości dokładnie jeden taki prostokąt!
Mozna oczywiście opisać to inaczej, że w danym bloku "nBox" wszystkie kandydujące pozycje dla wartości "nVal" to suma pozycji z jednego wiersza i jednej kolumny z tego bloku "nBox".
Bedzie oczywiście potrzebne jeszcze silne wiązanie dla wartości "nVal", ale gdzie ono ma wystąpić oraz z jakiej pozycji można usunąć kandydata "nVal" pokażemy na przykładach poniżej.
 

Spójrzmy na diagram obok. Cztery pozycje [5,4], [5,5], [6,4] i [6,5] tworzą prostokąt w 5-tym bloku i nie zawierają wartości "6" (bo są wypełnione), lub inaczej kandydat o wartości "6" występuje w sumie na pozycjach 4-tego wiersza i 6-tej kolumny tego bloku. W 8-mym wierszu występuje silne wiązanie dla wartości "6" na pozycjach [8,6] oraz [8,9] i jedna z pozycji tego wiązania leży w 4-tym wierszu lub w 6-tej kolumnie. Mając taki rozkład wartości "6" w bloku "5" i takie silne wiązanie możemy usunąć wartość "6" z pozycji [4,9].
  Tłumaczę dlaczego tak jest: mianowicie jeśli wartość "6" wystąpi w 5-tym bloku na pozycjach [4,4], [4,5] bądź [4,6] czyli w 4-tym wierszu to wartość "6" nie może wystąpić w pozycji [4,9], a jesli wartość "6" w 5-tym bloku wystąpi na pozycjach [4,6], [5,6] bądź [6,6] czyli w 6-tej kolumnie to wartość "6" nie będzie mogła wystąpić w pozycji [8,6] co wymusza wystąpienie wartości "6" w pozycji [8,9] (silne wiązanie), czyli nie będzie mogła wartość "6" wystąpić w pozycji [4,9]. Zatem niezależnie od wystąpienia wartości "6" w 5-tym bloku wartość "6" nie będzie mogła wystąpić na pozycji [4,9].

Na kolejnym przykładzie cztery pozycje [2,4], [2,6], [3,4] i [3,6] tworzą prostokąt w 2-gim bloku i nie zawierają wartości "7", lub inaczej kandydat o wartości "7" występuje w sumie na pozycjach 1-szego wiersza i 5-tej kolumny tego bloku. Jeśli wartość "7" w 2-gim bloku wystąpi w 1-szym wierszu to nie będzie ona mogła wystąpić na pozycji [1,9], a jeśli wartość "7" w 2-gim bloku wystąpi w 5-tej kolumnie to na pozycji [5,5] nie będzie mogła wystąpić wartość "7" co wymusza jej wystąpienie na pozycji [5,9], czyli także w tym przypadku wartość "7" nie będzie mogła wystąpić w pozycji [1,9].
  Więcej przykładów nie muszę zamieszczać, po tych dwóch wszystko powinno być jasne!