Найти тему

Убираем лишние кандидаты судоку (правило 2)

Всем привет, меня зовут Андрей!

Напомню о том, что в прошлой статье мы отфильтровали «лишние» кандидаты судоку согласно первому правилу, а именно: «если в пределах одного квадратика-блока судоку все кандидаты расположены только в одной строке, то все другие кандидаты этой строки будут “лишними”». В этой статье будем убирать «лишние» кандидаты судоку по «второму правилу». А это «второе» правило будет звучать так:

Если в пределах одного квадратика-блока судоку все кандидаты расположены только в одном столбце, то все другие кандидаты этого столбца будут «лишними».

Убирать «лишние» кандидаты будем не из всех кандидатов судоку, а из тех, что у нас образовались после сортировки по «первому» правилу. То есть, наша сортировка, или фильтрация, кандидатов будет многоступенчатой. А продолжим мы разбирать то же судоку, что уже начали сортировать в прошлой статье.

Напомню, какое было судоку первоначально:

Рис. 1. Первоначальное судоку.
Рис. 1. Первоначальное судоку.

После заполнения всех «очевидных», или «однозначных» кандидатов мы получили следующее судоку:

Рис. 2. Судоку после добавления "однозначных" кандидатов.Итак, начинаем сортировать кандидаты судоку по правилу номер два.
Рис. 2. Судоку после добавления "однозначных" кандидатов.Итак, начинаем сортировать кандидаты судоку по правилу номер два.

Напомню, где находятся кандидаты-единички после сортировки согласно правилу номер один:

Рис. 3. Кандидаты-единички после первой сортировки.
Рис. 3. Кандидаты-единички после первой сортировки.
Прежде, чем приступить к «правилу № 2» сортировки кандидатов, скопируем наш квадрат с кандидатами-единичками таким образом, чтобы заголовок квадрата – а он будет таким: «Кандидаты 1 после первой сортировки» - оказался не на 26-й, а на первой строчке Excel:
Рис. 4. Дублируем и перемещаем кандидаты-единички.
Рис. 4. Дублируем и перемещаем кандидаты-единички.

Дублирование этого квадрата с перемещением к верхним строках Excel, во-первых, сделает более удобной дальнейшую работу по сортировке кандидатов, во-вторых, здесь мы добавляем сумму кандидатов по строкам, столбцам и квадратикам, а под 36-й строкой Excel у нас нет места для двух строк, потому что в 38-й строке мы начнем работу с кандидатами-двойками.

Главный секрет при создании этого квадрата из предыдущего: нужно использовать формулы, а не тандем команд «Копировать-вставить». Это надо для того, чтобы при каждом новом судоку все квадраты появлялись автоматически.

Следующий этап сортировки будет искать: есть ли такие блоки, у которых все кандидаты расположены в пределах одного столбца, чтобы убрать «лишние» кандидаты – в том же столбце, но вне этого квадратика-блока.

Итак, начнем. Если при сортировке кандидатов согласно «правилу 1» нам надо было делить каждый квадратик-блок на три горизонтальные части, то сейчас – на три вертикальные. Вот что должно получиться:

Рис. 5. Посчет количества кандидатов в разных частях блока судоку.
Рис. 5. Посчет количества кандидатов в разных частях блока судоку.

Вне квадрата справа (столбец CR) – это число нолей в каждом из блоков судоку; рядом (столбец CS) – номер того блока, к которому относится значение числа из столбца CR. Цифры под квадратом (строка 12) достаточно просты. Если разделить каждый столбец судоку на три равные части и просуммировать число нолей в полученных частях, то получатся именно эти цифры.

Дальнейшие этапы фильтрации кандидатов аналогичны тем, которые мы уже рассматривали при фильтрации кандидатов согласно правилу № 1. Вначале – утраиваем те цифры, что мы получили в квадрате «Счет по столбцам»:

Рис. 6. Утраиваем цифры предыдущего квадрата.
Рис. 6. Утраиваем цифры предыдущего квадрата.
Следующие два квадрата также аналогичны тем, что мы уже составляли при сортировке кандидатов согласно правилу № 1. Вот что должно получиться:
Рис. 7. Фрагмент листа Excel. Квадраты, помогающие при сортировке кандидатов согласно правилу № 2.
Рис. 7. Фрагмент листа Excel. Квадраты, помогающие при сортировке кандидатов согласно правилу № 2.

В нашем случае «левый» квадрат содержит только ноли, но это не удивительно, поскольку кандидаты-единицы отфильтрованы не будут, нет ни одного варианта, при котором были бы такие кандидаты-единицы, что располагались бы в пределах одного квадратика-блока только в одном столбце.

И, наконец, следующая пара квадратов:

Рис. 8. Расчет новых кандидатов-единичек.
Рис. 8. Расчет новых кандидатов-единичек.
Получить почти все квадраты, представленные в данной статье, достаточно просто. Особенно если учесть то, что многие квадратики можно скопировать из тех, что мы уже получали при сортировке кандидатов по «правилу 1», и при этом корректировка понадобится несущественная и даже не для всех квадратов.

Перед 8-кратным копированием всего блока от BV1 до DC37 вниз для получения кандидатов-двоек, троек и т.д. нужно будет убрать из формул этого блока убрать все значки $, если они там были.

А на этом пока все. В следующем выпуске будем рассказывать про сортировку кандидатов согласно правилу номер три. Приглашаю всех любителей судоку подписаться на канал, и до новых встреч на канале!