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

email: darw32@poczta.onet.pl

Sudoku - Techniki Rozwiązywania

Formacja-WXYZ (WXYZ-Wing)

Formacja-WXYZ (ang. WXYZ-Wing) to rozszerzenie formacji-XYZ. W skład formacji-WXYZ wchodzą cztery komórki zawierające w sumie cztery różne wartości (oczywiście nie wszystkie komórki uczestniczące w formacji-WXYZ muszą zawierać wszystkie cztery wartości!). Pozycje należące do formacji-WXYZ muszą spełniać następujące warunki:

  • nie wszystkie mogą należeć do tego samego bloku lub linii (wiersz/kolumna)
  • conajmniej dwie pozycje tej formacji należą do tego samego bloku
  • conajmniej dwie pozycje tej formacji należą do tej samej linii (wiersz/kolumna)
  • istnieje conajmniej jedna taka pozycja bazowa, taka że pozostałe pozycje tej formacji leżą w tym samym sektorze (wiersz/kolumna/blok 3x3) co pozycja bazowa

Zapis powyższy dotyczy tylko ograniczenia związanego z położeniem pozycji formacji-WXYZ względem siebie (jest to warunek konieczny, ale nie wystarczający), nic nie mówi jednak o zbiorze wartości zawartych w tych pozycjach, aby formacja ta mogła mieć miejsce. Jakie powinny być wartości poszczególnych komórek formacji zostanie wytłumaczone poniżej w kolejnych wariantach.

Wariant 1

Na diagramie obok mamy cztery wyróżnione komórki, które zawierają wartości "2", "5", "6" oraz "9". Więc układ ten kandyduje na formację-WXYZ. Pozycja Bazowa (u nas [4,6]) może zawierać 3 lub 4 wartości (jeżeli zawiera 3 to nie może zawierać wartości Z (u nas Z=5). Trzy pozostałe pozycje (u nas [5,5], [7,6] i [9,6]) zawierają po dwie wartości przy czym suma zbiorów wartości z tych trzech pozycji ma cztery elementy oraz każda z tych trzech pozycji zawiera wartość Z=5.

Przeanalizujmy poniższy przykład, jeśli komórka bazowa przyjmie:
- wartość "2", komórka [7,6] przyjmie wartość "5"
- wartość "6", komórka [9,6] przyjmie wartość "5"
- wartość "9", komórka [5,5] przyjmie wartość "5"
tak więc możemy usunąć wartość "5" z tych wszystkich komórek, które leżą na przecięciu sektorów (wiersz/kolumna/blok 3x3) komórek należących do formacji-WXYZ zawierających wartość Z=5, czyli [5,5], [7,6] oraz [9,6]. W naszym przypadku można usunąć wartość "5" z komórek [6,6], [7,5] i [9,5].

Wariant 2

Trzy pozycje (u nas [5,6], [6,5] i [7,4]) zawierają po dwie wartości. Dwie z tych pozycji leżące w tym samym bloku lub linii (wiersz/kolumna) (u nas [5,6] i [6,5]) mają jedną wartość wspólną (u nas "1"). Niech aLeft jest to zbiór sumy wartości z pierwszych dwóch pozycji bez elementu wspólnego (u nas {3,8}). Zbiór aLeft oraz wartości z trzeciej pozycji mają jeden element wspólny i jest to nasza wartość Z (u nas Z=3). Niech aSum jest sumą wartości zbiorów aLeft oraz wartości z trzeciej pozycji (w naszym przypadku będzie to zbiór {3,7,8}). Pozycja Bazowa (u nas [5,4]) ma dwie wartości ze zbioru aSum (bez elementu Z) albo wszystkie trzy wartości.

Przeanalizujmy ten przykład, jeśli komórka bazowa przyjmie:
- wartość "3"
- wartość "7", komórka [7,4] przyjmie wartość "3"
- wartość "8", komórka [5,6] przyjmie wartość "1", a komórka [6,5] przyjmie wartość "3"
wartość "3" możemy usunąć z tych wszystkich komórek, które leżą na przecięciu sektorów (wiersz/kolumna/blok 3x3) komórek należących do formacji-WXYZ zawierających wartość Z=3, czyli [5,4], [6,5] oraz [7,4]. W naszym przypadku można usunąć wartość "3" z komórki [6,4].

Wariant 3

Dwie pozycje są z tego samego bloku lub linii (wiersz/kolumna). Suma wartości tych dwóch pozycji ma trzy elementy oraz wartości z jednej pozycji są zawarte w zbiorze wartości drugiej pozycji (u nas pozycje [4,4] oraz [4,6]). Trzecia pozycja (u nas [6,1]) ma dwie wartości. Jedna wartość nie występuje ani w pierwszej ani w drugiej pozycji (oznaczmy ją jako W), a druga występuje w pierwszej lub drugiej pozycji albo w obydwu i jest to nasza wartość Z (u nas Z=9). Pozycja Bazowa [4,3] ma dwie lub więcej wartości. Jedną z wartości pozycji bazowej musi być wartość W. Jeśli pozycja bazowa ma dwa elementy to drugim nie może być wartość Z.

Przeanalizujmy ten przykład, jeśli komórka bazowa przyjmie:
- wartość "1", komórka [6,1] przyjmie wartość "9"
- wartość "2", to komórki [4,4] i [4,6] utworzą odkrytą parę o wartościach "5" i "9", a więc wartość "9" nie będzie mogła wystąpić w 4-tym wierszu
- wartość "5", komórka [4,4] przyjmie wartość "9"
- wartość "9"
wartość "9" możemy usunąć z tych wszystkich komórek, które leżą na przecięciu sektorów (wiersz/kolumna/blok 3x3) komórek należących do formacji-WXYZzawierających wartość Z=9. W naszym przypadku można usunąć wartość "9" z komórki [4,2].

Wariant 4

Dwie pozycje nie należą do tego samego bloku i linii (u nas [2,2] oraz [3,8]). Jedna pozycja ma dwie wartości, a druga dwie lub trzy oraz obydwie pozycje mają jedną wartość wspólną Z (u nas Z=3). Suma wartości z pozycji bazowych (u nas [3,1] i [3,3]) daje trzy elementy i żadna z nich nie jest wartością Z. Wybór dowolnej wartości z jednej pozycji bazowej np. [3,1] spowoduje, że pozycja [2,2] lub [3,8] przyjmie wartość Z, bądź pozycje [3,3], [2,2] oraz [3,8] utworzą formację-XY.

Analizujemy przykład obok, jeśli komórka bazowa [3,1] przyjmie:
- wartość "4", to komórki [3,3], [2,2] oraz [3,8] utworzą formację-XY z wartością Z=3
- wartość "5", to komórka [3,3] przyjmie wartość "9" a komórka [2,2] wartość "3"
- wartość "9", to komórka [2,2] przyjmie wartość "3"
wartość "3" możemy usunąć z tych wszystkich komórek, które leżą na przecięciu sektorów (wiersz/kolumna/blok 3x3) komórek należących do formacji-WXYZ zawierających wartość Z=3. W naszym przypadku można usunąć wartość "3" z komórek [2,7], [2,8] oraz [2,9].

Wariant 5

Wariant ten jest podobny do poprzedniego (wariant 4) z tym, że suma wartości z pozycji bazowych zawiera cztery elementy. Wybór dowolnej wartości z jednej pozycji bazowej spowoduje, że jedna z pozostałych pozycji formacji-WXYZ przyjmie wartość Z, bądź pozostałe pozycje utworzą formację-XYZ.

Analiza przykładu obok, jeśli komórka bazowa [5,5] przyjmie:
- wartość "1"
- wartość "3", komórka [5,9] przyjmie wartość "1"
- wartość "4", to komórka [4,4] przyjmie wartość "1"
- wartość "5", to komórki [5,6], [5,9] oraz [4,4] utworzą formację-XYZ z wartością Z=1
wartość "1" możemy usunąć z tych wszystkich komórek, które leżą na przecięciu sektorów (wiersz/kolumna/blok 3x3) komórek należących do formacji-WXYZ zawierających wartość Z=1. W naszym przypadku można usunąć wartość "1" z komórki [5,4].