Как решать сложные судоку: методы с примерами
Когда одиночки закончились, а пустых клеток ещё много, судоку не тупик: дальше работают приёмы с пометками. Они не ставят цифру сразу, а вычёркивают лишние пометки — и одиночки снова находятся. Ниже — методы по ступеням генератора, на каждый — пример из настоящей судоку: что было и что вычеркнули.
Редакция A4go · Головоломки · опубликовано · 5 мин чтения
Как устроены методы для сложных судоку
В лёгкой судоку цифры находятся одна за другой: одиночки и скрытые одиночки — о них в статье «Правила судоку и как решать». В сложной этого не хватает: в каждой пустой клетке остаётся по две-три возможные цифры, и ни одна не единственная.
Методы для сложных судоку работают по-другому: они не ставят цифру, а доказывают, что какой-то цифры в клетке быть не может, — и её пометку можно вычеркнуть. Вычеркнули несколько пометок — где-то осталась одна, и снова работают одиночки. Поэтому решение сложной судоку — это чередование: одиночки, пока находятся, потом приём, потом снова одиночки.
Пометки: как вести, чтобы не запутаться
Без пометок сложную судоку не решить: все приёмы ниже смотрят на них. Впишите в каждую пустую клетку все цифры, которые в неё ещё могут встать, — мелко и всегда в одно и то же место: 1 — в левом верхнем углу, 9 — в правом нижнем. Так одинаковые цифры в соседних клетках видны сразу, а пары и «крылья» находятся глазом.
Два правила. Поставили цифру — сразу сотрите её пометки в той же строке, столбце и квадрате; забытая пометка потом «обманет» приём. И пишите карандашом: пометки стираются постоянно. Если на листе тесно, печатайте судоку с местом для пометок — по одной-две на листе.
Пометки карандашом: в каждой пустой клетке — цифры, которых нет в её строке, столбце и квадрате.
«Запертые» цифры
Первый приём средних судоку. Если в квадрате цифра может стоять только в одной строке (или в одном столбце), то она обязательно окажется в этой строке внутри квадрата. Значит, в остальной части строки, за пределами квадрата, этой цифры нет — пометки вычёркиваем.
Работает и наоборот: если в строке цифра может стоять только внутри одного квадрата, то в остальных клетках этого квадрата её нет. На рисунке — первый случай.
«Запертая» цифра: в выделенном квадрате цифра 2 может стоять только в одной строке — значит, в остальной части этой строки 2 нет (зачёркнуто).
Открытая пара
Открытая пара — две клетки одной строки, столбца или квадрата, в которых пометки одни и те же две цифры, например 3 и 8. Какая из клеток будет 3, а какая 8, пока неизвестно, но эти две цифры точно займут именно их. Значит, в остальных клетках этой строки (столбца, квадрата) ни 3, ни 8 быть не может.
На рисунках здесь и дальше: жёлтым — клетки приёма, синим — его цифры, красным на втором кадре — вычеркнутые пометки. Пометки — те, что остались к этому шагу решения.
До. Открытая пара: в столбце 2 клетки (5, 2) и (8, 2) могут быть только 3 или 8 — эти цифры займут их, и из остальных клеток столбца 3 и 8 вычёркиваем.
После: 7 пометок вычеркнуто (красным).
Открытая тройка
Открытая тройка — то же для трёх клеток и трёх цифр. В каждой из трёх клеток не обязательно все три цифры: достаточно, чтобы вместе у них было ровно три разные цифры, например {5, 7}, {7, 9} и {5, 9}. Три цифры займут три клетки, поэтому в остальных клетках строки (столбца, квадрата) их нет.
Тройку искать труднее, чем пару: смотрите на клетки с двумя-тремя пометками в одной строке, столбце или квадрате.
До. Открытая тройка: в строке 8 в трёх клетках (8, 1), (8, 8) и (8, 9) — только цифры 5, 7 и 9; они займут эти клетки, из остальных клеток строки их вычёркиваем.
После: 7 пометок вычеркнуто (красным).
Скрытая пара
Скрытая пара — наоборот: смотрим не на клетки, а на цифры. Если в строке (столбце, квадрате) две цифры могут стоять только в двух одних и тех же клетках, то эти клетки заняты ими — других цифр там быть не может. Все остальные пометки в этих двух клетках вычёркиваем, и пара становится открытой.
Скрытую пару трудно увидеть: в её клетках много пометок, и она «прячется» среди них. Ищите так: возьмите строку и для каждой цифры посчитайте, в скольких клетках она помечена. Две цифры, у которых по две одинаковые клетки, — скрытая пара.
До. Скрытая пара: в строке 3 цифры 1 и 7 могут стоять только в двух клетках (3, 5) и (3, 6) — значит, эти клетки заняты ими, остальные пометки в них вычёркиваем.
После: 5 пометок вычеркнуто (красным).
«Крыло» (X-Wing)
«Крыло» — приём для одной цифры. Найдите две строки, в которых эта цифра может стоять только в двух клетках, и притом в одних и тех же двух столбцах. Получается прямоугольник из четырёх клеток. В одной строке цифра встанет в левый угол, в другой — в правый, или наоборот; в любом случае оба столбца заняты этой цифрой.
Значит, в остальных клетках этих двух столбцов цифры нет — вычёркиваем. То же можно искать «по столбцам»: два столбца, где цифра только в двух одинаковых строках, — и вычёркивать её из этих строк.
До. «Крыло»: в двух строках (3, 9) цифра 2 может стоять только в двух столбцах (2, 8). Цифры 2 из этих строк займут эти столбцы — по одной в каждом, поэтому в остальных клетках этих столбцов 2 быть не может: вычёркиваем.
После: 3 пометки вычеркнуты (красным).
«Рыба-меч» (Swordfish)
«Рыба-меч» — «крыло» на три строки. Если в трёх строках цифра может стоять только в трёх столбцах (в каждой строке — в двух или трёх из них), то три такие цифры займут все три столбца, по одной в каждом. Из остальных клеток этих столбцов цифру вычёркиваем.
Найти «рыбу-меч» глазом трудно: выпишите для одной цифры, в каких столбцах она помечена в каждой строке, и ищите три строки, у которых вместе ровно три столбца.
До. «Рыба-меч»: в трёх столбцах (3, 4, 6) цифра 5 может стоять только в трёх строках (3, 6, 9). Цифры 5 из этих столбцов займут эти строки — по одной в каждой, поэтому в остальных клетках этих строк 5 быть не может: вычёркиваем.
После: 5 пометок вычеркнуто (красным).
XY-крыло (XY-Wing)
XY-крыло — три клетки с двумя пометками в каждой. В центральной — две цифры, скажем x и y. Центр «видит» (стоит в одной строке, столбце или квадрате) две клетки-крыла: в одной — x и z, в другой — y и z. Если в центре x, то в первом крыле z; если y — z во втором. Значит, z точно в одном из крыльев.
Отсюда вывод: в клетке, которая видит оба крыла, z быть не может — вычёркиваем. Ищите клетки с двумя пометками: XY-крыло всегда строится из них.
До. XY-крыло: в центре (3, 6) — 7 или 8, в крыльях (1, 4) и (6, 6) — пары с 3. Какая бы цифра ни встала в центр, 3 окажется в одном из крыльев — из клеток, которые видят оба крыла, 3 вычёркиваем.
После: 3 пометки вычеркнуты (красным).
Когда приёмов не хватает: нужно ли угадывать
В судоку генератора угадывать не нужно ни на одной ступени: каждая проверена решателем и решается до конца одиночками и приёмами из этой статьи. Если застряли — скорее всего, пропущена пометка или не стёрта лишняя. Проверьте пометки в строке, столбце и квадрате последней поставленной цифры.
В других сборниках бывают судоку, где этих приёмов не хватает. Тогда остаётся предположение: выбрать клетку с двумя пометками, поставить одну цифру и решать дальше; если пришли к противоречию — в клетке другая цифра. Метод работает, но он хуже: ошибка всплывает через много шагов, и откатывать решение назад на бумаге трудно. Если пробуете, ставьте предположение и всё, что из него следует, другим цветом.
Какие приёмы нужны для каждой ступени
Ступень судоку в генераторе — это самый сложный приём, без которого её не решить. Начинать удобно с средних, потом переходить к сложным и очень сложным.
| Ступень | Какие приёмы нужны |
|---|---|
| Лёгкое | одиночки и скрытые одиночки |
| Среднее | ещё «запертые» цифры в строке, столбце или квадрате |
| Сложное | ещё открытые пары и тройки, скрытые пары, «крыло» |
| Очень сложное | ещё «рыба-меч» и XY-крыло |
Источники
- Приёмы и ступени — как в генераторе судоку A4go (src/core/sudoku.js): лёгкие решаются одиночками, средним нужны «запертые» цифры, сложным — пары, тройки, скрытые пары и «крыло», очень сложным — ещё «рыба-меч» и XY-крыло.
- Рисунки — шаги решателя генератора на судоку из генератора: пометки перед шагом и пометки, которые приём вычёркивает; судоку проверены перебором — решение одно.
Вопросы и ответы
Как решать сложные судоку?
Расставить пометки во всех пустых клетках и вычёркивать лишние приёмами: «запертые» цифры, открытые и скрытые пары, тройки, «крыло». Когда в клетке остаётся одна пометка — ставить цифру и снова искать одиночки.
Какие есть методы решения судоку?
Одиночки и скрытые одиночки — для лёгких; «запертые» цифры — для средних; открытые пары и тройки, скрытые пары и «крыло» — для сложных; «рыба-меч» и XY-крыло — для очень сложных.
Нужно ли угадывать в сложной судоку?
В судоку генератора A4go — нет: каждая решается приёмами до конца. Если не получается, чаще всего пропущена или не стёрта пометка.
Что такое «крыло» в судоку?
Приём для одной цифры: в двух строках она может стоять только в двух одинаковых столбцах. Тогда эти столбцы заняты ею, и в остальных клетках столбцов её нет.
Чем открытая пара отличается от скрытой?
В открытой паре в двух клетках только две одинаковые пометки. В скрытой две цифры возможны только в двух клетках, но в этих клетках есть и другие пометки — их вычёркивают.