Алгоритмы решения
Освойте эти фундаментальные техники решения, чтобы покорить любую головоломку Судоку. Каждый алгоритм основан на логическом выводе для заполнения клеток, имеющих только одно возможное решение.
Последняя цифра
1 4
Последняя цифра - 1 4
Последняя цифра (также известная как последний оставшийся кандидат) выявляет любую строку, столбец или блок, в которых уже содержатся восемь различных цифр; недостающая цифра должна занять единственную пустую ячейку в этом доме, поскольку правила судоку требуют, чтобы каждая цифра от 1 до 9 появлялась ровно один раз в каждом доме.
Последняя цифра - 2 4
Во второй строке осталась только одна пустая ячейка [2,2] (выделена синим).
Последняя цифра - 3 4
В строке уже присутствуют цифры 1, 3, 4, 5, 6, 7, 8 и 9 (выделены синим).
Последняя цифра - 4 4
Следовательно, единственная недостающая цифра — это '2', которая должна быть в ячейке [2,2] (выделена синим).
Голые одиночки
1 3
Голые одиночки - 1 3
Голый одиночка возникает, когда в ячейке после всех исключений остаётся только один кандидат.
Требование: необходимо просканировать весь дом на наличие кандидатов.
Голые одиночки - 2 3
После проверки всех кандидатов в этом блоке, '7' — единственный кандидат для данной ячейки (выделена синим).
Голые одиночки - 3 3
Следовательно, '7' должен быть в этой ячейке (теперь заполнена и выделена синим).
Голые одиночки - 4 3
Следовательно, '7' должен быть в первой ячейке строки (теперь заполнена и выделена синим).
Скрытые одиночки
1 3
Скрытые одиночки - 1 3
Скрытый одиночка — это кандидат, который встречается ровно один раз среди всех кандидатов в доме (строке, столбце или блоке). Даже если в ячейке есть другие кандидаты, этот уникальный кандидат должен быть размещён именно здесь.
Скрытые одиночки - 2 3
После проверки всех кандидатов в этом блоке, кандидат '9' встречается только в одной ячейке (выделена синим).
Скрытые одиночки - 3 3
Следовательно, '9' должен быть размещён в этой ячейке — она заполнена и выделена синим.
Указывающие пары
1 4
Указывающие пары - 1 4
Указывающие пары определяют кандидатов, ограниченных одной строкой или столбцом внутри блока. Поскольку эти кандидаты не могут появиться в других местах этого дома, их можно удалить из той же строки/столбца вне блока.
Указывающие пары - 2 4
После проверки всех кандидатов в этом последнем блоке, кандидаты '3' встречаются только в двух выделенных (синим) ячейках в одной строке.
Указывающие пары - 3 4
Хотя в этих ячейках есть и другие кандидаты, поскольку кандидаты '3' (этого блока) могут быть только в этих двух ячейках, мы можем удалить кандидата '3' из всех остальных ячеек той же строки (вне блока).
Указывающие пары - 4 4
Этот приём также работает с тремя кандидатами.
Голые пары
1 3
Голые пары - 1 3
Эта стратегия находит ровно две ячейки в доме (строке, столбце или блоке), содержащие одинаковые два кандидата. Когда они найдены, эти два значения можно удалить из всех остальных ячеек общих домов, поскольку они должны занимать эти две ячейки.
Голые пары - 2 3
После сканирования всех кандидатов в этом последнем блоке две ячейки содержат только одинаковые два кандидата '1' и '2' (выделены синим).
Голые пары - 3 3
Поскольку эти ячейки могут содержать только '1' или '2', этих кандидатов можно удалить из всех других общих домов.
X-Wing
1 4
X-Wing - 1 4
X-Wing — это продвинутый приём, использующий две строки и две колонки. Если кандидат появляется ровно в двух ячейках в каждой из двух строк (или столбцов), и эти ячейки выстраиваются в тех же двух столбцах (или строках), то этого кандидата можно исключить из всех остальных ячеек этих столбцов (или строк), поскольку он должен занять одну из четырёх ячеек в шаблоне X-Wing.
X-Wing - 2 4
После сканирования всех кандидатов выделите две строки (красным), где кандидат ограничен точно теми же двумя столбцами (синим).
X-Wing - 3 4
Шаблон X-Wing образуется в пересечениях этих строк и столбцов (выделены синим).
X-Wing - 4 4
Следовательно, удалите этого кандидата из всех остальных ячеек в выделенных столбцах и строках.
Рыба-меч
1 4
Рыба-меч - 1 4
Swordfish — это продвинутый приём, расширяющий X-Wing на три строки и три столбца. Если кандидат появляется ровно в трех ячейках в каждой из трех строк (или столбцов), и эти ячейки выстраиваются в тех же трех столбцах (или строках), этого кандидата можно исключить из всех остальных ячеек этих строк и столбцов, поскольку он должен занять одну из девяти ячеек в шаблоне Swordfish.
Рыба-меч - 2 4
После сканирования всех кандидатов выделите три строки (красным), где кандидат ограничен точно теми же тремя столбцами (синим).
Рыба-меч - 3 4
Шаблон Swordfish образуется в пересечениях этих строк и столбцов (выделены синим).
Рыба-меч - 4 4
Следовательно, удалите этого кандидата из всех остальных ячеек в выделенных строках и столбцах.
XY-крыло
1 5
XY-крыло - 1 5
XY-Wing — это паттерн из трех ячеек, каждая из которых имеет ровно двух кандидатов: XY (опорная), XZ и YZ (крылья). Если опорная ячейка «видит» оба крыла, любая ячейка, которая видит оба крыла, не может содержать общий кандидат Z.
XY-крыло - 2 5
После сканирования всех кандидатов найдите три ячейки с кандидатами XY, XZ и YZ (выделены синим и красным).
XY-крыло - 3 5
Опорная ячейка (красная) имеет общий дом с обоими крыльями (синие), и каждая пара ячеек разделяет один кандидат. В этом примере опорная ячейка делит '4' с одним крылом и '1' с другим; оба крыла делят '3'.
XY-крыло - 4 5
Любая ячейка, видящая оба крыла (выделена зелёным), не может содержать общий кандидат '3'.
XY-крыло - 5 5
Следовательно, удалите кандидата '3' из всех ячеек, которые видят оба крыла.