База приёмов решения судоку
Логические приёмы решения судоку — от простых одиночек до продвинутых цепочек и рыб. Сгруппированы по семьям и отсортированы от простого к сложному.
Одиночки
Ставим цифру напрямую: в клетке или в юните для неё остаётся единственное место.
Блок и линия
Пересечение блока 3×3 со строкой или столбцом позволяет вычеркнуть кандидатов.
- Указывающая пара (блок → линия) — Если в блоке 3×3 все клетки-кандидаты для цифры лежат в одной строке (или столбце), эту цифру можно убрать из остальной части строки за пределами блока.
- Взаимодействие линии и блока — Если в строке (или столбце) все клетки-кандидаты для цифры лежат в одном блоке, эту цифру можно убрать из остальной части блока.
Подмножества
Группа клеток (пара, тройка, четвёрка) запирает между собой набор цифр — остальным их не достаётся.
- Голая пара — Две клетки одного юнита имеют одинаковый набор ровно из двух кандидатов — эти две цифры больше нигде в юните не встанут.
- Скрытая пара — Две цифры юнита возможны только в одних и тех же двух клетках — все остальные кандидаты в этих клетках можно убрать.
- Голая тройка — Три клетки одного юнита используют вместе ровно три цифры — эти цифры больше нигде в юните не встанут.
- Скрытая тройка — Три цифры юнита возможны только в трёх общих клетках — остальные кандидаты в этих клетках можно убрать.
- Голая четвёрка — Четыре клетки одного юнита используют вместе ровно четыре цифры — эти цифры больше нигде в юните не встанут.
- Скрытая четвёрка — Четыре цифры юнита возможны только в четырёх общих клетках — остальные кандидаты в этих клетках можно убрать.
Рыбы
Одна цифра выстраивается в решётку из строк и столбцов: ищем по одному направлению — чистим по перпендикулярному.
- Х-крыло (X-Wing) — Цифра образует «прямоугольник» из двух строк и двух столбцов — это позволяет убрать её кандидатов по всей длине этих столбцов (или строк).
- Рыба-меч (Swordfish) — Расширение Х-крыла на три линии: если цифра в трёх строках умещается в одни и те же три столбца, её можно убрать из этих столбцов в других строках.
- Рыба-медуза (Jellyfish) — Расширение рыбы-меча на четыре линии: если цифра в четырёх строках умещается в одни и те же четыре столбца, её можно убрать из этих столбцов в других строках.
- Х-крыло с плавником (Finned X-Wing) — Почти Х-крыло, но в одной из линий есть лишний кандидат-«плавник» в том же блоке, что и угол. Убрать цифру можно только из клетки, которая видит и крыло, и плавник.
Крылья
Двузначные клетки-«клешни» вокруг опоры вынуждают исключение по общей цифре.
- XY-крыло (Y-Wing) — Три клетки с двумя кандидатами образуют «крыло»: как бы ни повернулось, одна из «клешней» станет нужной цифрой — и её можно убрать из клеток, которые видят обе клешни.
- XYZ-крыло — Как XY-крыло, но опорная клетка содержит три кандидата {X,Y,Z}. Клетка, которая видит опору и обе клешни, не может быть Z.
- W-крыло — Две одинаковые двузначные клетки {A,B}, соединённые «сильной связью» по B, гарантируют, что хотя бы одна из них равна A — и A убирается из клеток, видящих обе.
- WXYZ-крыло — Четыре клетки используют вместе четыре цифры {W,X,Y,Z} с общей Z. Клетка, видящая все клетки-носители Z, не может быть Z.
Уникальность решения
Опираются на то, что у корректного судоку ровно одно решение — иначе возник бы «смертельный» узор.
- Уникальный прямоугольник (Unique Rectangle) — Четыре угла в двух строках, двух столбцах и двух блоках не могут все держать одну и ту же пару {A,B} — иначе у судоку было бы два решения. Это позволяет убрать лишние кандидаты.
- Скрытый уникальный прямоугольник — Разновидность уникального прямоугольника: один угол — ровно {A,B}, а сильные связи по одной из цифр в противоположном углу запрещают там эту цифру.
- BUG+1 (почти «двойная могила») — Если во всей сетке остались только клетки с двумя кандидатами, кроме одной с тремя, — в ней ставим ту цифру, что встречается в её юните нечётное число раз.
Цепочки и раскраска
Длинные цепочки сильных и слабых связей и двухцветная разметка — для одной или нескольких цифр.
- Простая раскраска (Simple Colouring) — Для одной цифры цепочку «сильных связей» красят в два чередующихся цвета. Клетка, которая видит оба цвета, не может быть этой цифрой.
- X-цепочки (X-Cycles) — Цепочка по одной цифре из чередующихся сильных и слабых связей. Если оба конца связаны «сильно», цифру можно убрать из клеток, видящих оба конца.
- XY-цепочка (XY-Chain) — Цепочка двузначных клеток, где соседи делят общую цифру. Концы цепочки сходятся на одной цифре — её убирают из клеток, видящих оба конца.
- 3D-Медуза (3D Medusa) — Раскраска, охватывающая сразу несколько цифр: две цифры одной двузначной клетки получают противоположные цвета. Противоречия по цветам дают исключения.
Особые приёмы
Мощные, но узкие техники, не вошедшие в другие семьи.
- Удалённые пары в «чуте» (Chute Remote Pairs) — Две одинаковые клетки {A,B} в одной полосе из трёх блоков запрещают одну из своих цифр всем клеткам, которые видят обе, — если связующим клеткам полосы недоступна вторая цифра.
- Пустой прямоугольник (Empty Rectangle) — В блоке кандидаты цифры образуют «уголок» из строки и столбца. В связке с сильной связью по этой же цифре это даёт исключение на пересечении.
- Исключение выровненной пары (Aligned Pair Exclusion) — Две видящие друг друга клетки не могут принять комбинацию цифр, которая опустошит клетку, видимую ими обеими. Отсюда — исключение кандидата.