Найти в Дзене

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

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

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

В этой статье будем убирать «лишние» кандидаты судоку по «третьему правилу». А это «третье» правило будет звучать так:

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

Как и в прошлый раз, будем сортировать не первоначальные кандидаты, а те, что у нас появились после двойной сортировки.

Итак, вот где расположены кандидаты-единички после двух сортировок-фильтраций:

Рис. 1. Кандидаты-единички судоку.
Рис. 1. Кандидаты-единички судоку.

Как мы уже делали при сортировке кандидатов согласно правилу 2, прежде всего скопируем этот квадрат, поместив его в верхние строчки Excel – но не при помощи команд «копировать-вставить», а при помощи формул, чтобы не приходилось выполнять снова команды «копировать-вставить» при новом судоку. Кроме того, команды «копировать-вставить» могут привести к совершенно новому квадрату или даже к ошибкам. Поэтому формула для левой верхней клетки нового квадрата будет простой:

=CU28

А весь новый квадрат будет выглядеть так:

Рис. 2. Копия квадрата с кандидатами и подсчет кандидатов в строках, столбцах и блоках.
Рис. 2. Копия квадрата с кандидатами и подсчет кандидатов в строках, столбцах и блоках.

Хотя с помощью команд «копировать вставить» из первого квадрата получить второй нельзя, но наш второй квадрат – «кандидаты 1 после 2 сортировки» можно получить из вот какого квадрата:

Рис. 3. Кандидаты-единички после сортировки согласно правилу 1.
Рис. 3. Кандидаты-единички после сортировки согласно правилу 1.

Мы этот квадрат уже раньше составляли. Изменить нужно только заголовок – ведь у нас в одном случае кандидаты 1 после первой сортировки, а во втором – кандидаты 1 после второй сортировки. Кроме того, если скопировать весь блок от BV1 до CF13, то при вставке будут просчитаны новые цифры вне квадрата (правее и ниже). Напомню, что эти цифры получены с помощью функции СЧЁТ и они показывают количество кандидатов в каждой строке, столбце и квадратике.

Но продолжим сортировать кандидаты по «правилу № 3». Кстати, для следующего квадрата нам понадобится тот квадрат, который мы уже применяли в «правиле № 1». Речь идет о разделении каждого блока на три части по горизонтали:

Рис. 4. Фрагмент листа Excel со счетом количества кандидатов судоку в разных частях (фрагментах) судоку.
Рис. 4. Фрагмент листа Excel со счетом количества кандидатов судоку в разных частях (фрагментах) судоку.

Скопировав этот квадрат и вставив чуть правее, начиная с ячейки DR1, мы получим нужный нам квадрат:

Рис. 5. Один из этапов фильтрации кандидатов судоку.
Рис. 5. Один из этапов фильтрации кандидатов судоку.

Расшифровка цифр, которые находятся вне обоих квадратов «счет по столбцам». Справа – число нолей в строке, это число может быть от 0 до 3; внизу (строка 12) – число нолей в каждом из блоков (тоже от 0 до 3); строка 13 – нумерация блоков. Сначала – блок 1, затем блок 4, и так далее.

Кстати, следующий квадрат – утраиваем основные цифры – тоже можно будет взять путем копирования квадрата с тем же названиям (столбцы BJ-BS). Вот что должно получиться после копирования:

Рис. 6. Фрагмент листа Excel. Утравивание цифр предыдущего квадрата.
Рис. 6. Фрагмент листа Excel. Утравивание цифр предыдущего квадрата.
А вот следующие квадраты уже будут отличаться от тех, что применялись в предыдущих правилах сортировки кандидатов. Если раньше мы считали, есть ли два ноля в блоке (потому что первые два правила сортировки кандидатов начинались со слов «если в пределах одного блока...»), то сейчас нас будет интересовать, есть ли два ноля в строке. Потому что «третье» правило сортировки кандидатов начинается со слов «если в пределах одной строки...»

Как и в прошлые разы, следующие квадраты предоставим сразу парами:

Рис. 7. Следующий этап поиска новых кандидатов судоку.
Рис. 7. Следующий этап поиска новых кандидатов судоку.

Здесь всё просто, заголовки соответствуют содержанию. Начнем с «левого» квадрата. Если есть два ноля в какой-то строке, то все цифры этой строки будут единицами, если нет – нолями. Правый квадрат еще проще – «тройка» в заголовке – это просто третья часть строки, ограниченная одним блоком.

И, наконец, завершающая (по данной теме) пара квадратов:

Рис. 8. Новые кандидаты судоку.
Рис. 8. Новые кандидаты судоку.

Здесь тоже все достаточно просто, также все заголовки соответствуют содержанию. «Левый» квадрат – будет содержать единицы, если в предыдущей паре квадратов были единицы, то есть в этом квадрате – произведение тех двух цифр, что были в прошлой паре квадратов. И если хотя бы в одном квадрате ноль, то произведение тоже будет равно нолю. Столбец «EB» («№б») – это сокращение от «номер блока», чтобы не ошибиться, не просуммировав случайно значения строках, а не в блоках.

Ну и «правый» квадрат – новые кандидаты. Все по аналогии с предыдущими правилами сортировки. Если в графе «номер блока» ноль, тогда оставляем все кандидаты без изменения; а если кандидат относится к той трети блока, которую нужно оставить – оставляем всё; если кандидат относится к тому блоку, в котором есть те кандидаты, которые надо оставить, но к другой строке этого блока – тогда этот кандидат будет «лишним».

Для копирования всех полученных квадратов вниз – перед тем, как скопировать фрагмент Excel от EF1 до DM36, нужно будет удалить все значки $. Впрочем, то же самое касалось и сортировки кандидатов судоку согласно первым двум правилам.

На этом пока всё, в следующей статье на эту тему расскажем про сортировку кандидатов судоку согласно «правилу № 4». Приглашаю всех любителей Excel и судоку подписаться на мой канал, и до новых встреч!