© Андрей Евгеньевич Зайнулин, 2025
ISBN 978-5-0068-3724-9
Создано в интеллектуальной издательской системе Ridero
Глава 1. Вместо введения
Данная книга пригодится не только тем, кто любит отгадывать судоку, но также и всем тем, кто хочет улучшить уровень своего владения электронными таблицами Эксель (Excel).
Основные темы, которые рассмотрены в данной книге:
· программирование в Эксель, работа с макросами;
· форматирование и условное форматирование ячеек Эксель;
· имена ячеек и групп (массивов, областей) ячеек;
· создание имен для формул в Эксель;
· создание имен для разрозненных диапазонов в Эксель;
· сокращение вложений в функции ЕСЛИ с сохранением всех задач, стоящих перед этой функцией;
· создание файла с макросами в Эксель, помогающего найти кандидаты для каждой ячейки судоку;
· фильтрация (отсеивание) ненужных кандидатов судоку;
· выделение самых главных (особых, уникальных) кандидатов судоку;
· полная или частичная автоматизация решения судоку от начала и до конца;
· работа в макросах (в редакторе VBA) с ячейками, массивами ячеек, а также с формулами, у которых уже есть свои имена в текущей книге Эксель;
· оптимизация работы с очень длинными (очень большими) формулами в Эксель;
· создание таких списков для ячеек Эксель, чтобы из них можно было выбрать нужный элемент для ввода в ячейку Эксель (создание списков для ячеек Эксель).
Конечно же, эта книга очень пригодится любителям судоку, поскольку в ней содержится информация о том, как можно решать судоку, как быстро найти нужные кандидаты для судоку.
В данной книге рассказано о том, что такое кандидаты в судоку, как кандидаты помогают в решении судоку.
Основные методы и способы решения судоку отражены в данной книге. Эксель поможет отфильтровать кандидаты судоку, убрать лишние кандидаты, оставить только нужные, перевести самые нужные кандидаты из кандидатов в основное судоку.
С помощью данной книги можно не только быстро отгадывать судоку, видеть все кандидаты судоку, но и быстро выделять самые важные кандидаты. Можно ко всем кандидатам применять несколько видов условного форматирования, что позволит особо выделить самые главные кандидаты. Эта книга послужит помощником при отгадывании судоку.
Многие программисты, улучшая свои навыки владения Эксель, получат удовольствие не сколько от разгадывания судоку, сколько от самого процесса программирования, то есть составления программ с помощью Эксель, которые помогут в отгадывании разных видов судоку.
Когда автор начал работать над этой книгой, то вначале хотел разобрать несколько видов судоку. Но когда выяснилось, что объем информации только для основного (классического) типа судоку занимает несколько сотен страниц, пришлось на этом остановиться, ограничиться в этой книге только основным видом судоку. Все судоку, рассмотренные в этой книге, объединяет одно: размер 9 на 9. Большинство судоку, которые существуют на сегодняшний день, составляются именно размером 9 на 9 клеток. Другие типы судоку будут рассмотрены в следующих книгах, которые выйдут позже. Таким образом, данная книга – только первая книга в целой серии книг по данной теме.
С точки зрения математики любое заполненное судоку – это латинский квадрат. Если говорить про судоку размером 9 на 9 – то судоку будет представлять из себя латинский квадрат размером 9 на 9. Это значит, что в каждой строке и в каждом столбце любая из цифр от 1 до 9 включительно будет содержаться только по одному разу. Кроме того, почти во всех разновидностях судоку (за редкими оригинальными исключениями) имеются маленькие квадратики размером 3 на 3, причем в каждом из этих квадратиков каждая цифра от 1 до 9 включительно встречается тоже только однажды. Эти маленькие квадратики размером 3 на 3 мы будем называть блоками. В каждом судоку 9 на 9 содержится ровно 9 блоков размером 3 на 3. Во многих видах судоку присутствуют и добавочные правила, например, диагональные судоку – это те судоку, на каждой из диагоналей которых нет повторяющихся цифр. Не только диагональные, но и многие другие виды судоку будут рассмотрены… но уже не в данной книге, а в других книгах этого же автора, которые выйдут чуть позже.
Макросы и отрывки из макросов расположены внутри следующих стрелочек:
↓ ↓ ↓ ↓
(Текст макроса или его часть)
↑ ↑ ↑ ↑
Все судоку (как неразгаданные, так и разгаданные), что использованы в данной книге, либо получены с помощью компьютера (с помощью компьютерных программ), либо составлены лично автором этой книги. Любые совпадения с теми судоку или их частями, что были когда-то опубликованы в печатном и/или электронном виде и, возможно, являются объектом чьего-то авторского права, являются случайными. Единственное исключение из этого правила – это то судоку, которое названо «самым сложным судоку в мире», оно было не раз опубликовано в открытом доступе, его автором считается Арто Инкала, математик из Финляндии. По шкале, которой обычно измеряют трудность судоку, этот судоку обычно оценивают в 11 (одиннадцать) баллов.
Основная цель данной книги – помочь не только всем любителям судоку, но и всем тем, кто хочет улучшить свои навыки владения Эксель. В книге рассказано, как можно с помощью Excel получить все кандидаты для каждой ячейки судоку, как отсечь большинство «лишних» кандидатов, как быстро найти тот кандидат – назовем его «главный» кандидат – который быстро можно перенести из таблицы с кандидатами в основное судоку. Это уже, в принципе, не совсем кандидат, потому что данный кандидат будет либо единственным для какой-то конкретной клетки (ячейки) судоку, либо все кандидаты рядом с ним будут автоматически считаться «лишними» для той ячейки судоку, в которой находится этот «главный» кандидат. «Главный» кандидат – это тот, который однозначно и немедленно должен быть перемещен из кандидатов в основное судоку. По сути, в этом и заключается работа по заполнению (или разгадыванию) судоку, а именно: нужно найти «главный» кандидат и переместить (записать) его в основное судоку. Мы в данной книге иногда этот кандидат будем называть также «уникальным», «основным», или «однозначным». Это по сути одно и то же. И означает это понятие тот кандидат, который надо переместить в основное судоку.
В данной книге будет встречаться термин «область». Мы под областью будем понимать строку, столбец или блок (маленький квадратик 3 х 3) судоку. Если какое-то утверждение будет справедливо и для каждой строки судоку, и для каждого столбца судоку, и для каждого блока (маленького квадрата 3 х 3 судоку), то мы просто употребим термин «область». Так, например, фраза «в любой области судоку каждая цифра от 1 до 9 включительно может встречаться только 1 раз» будет означать, что и в каждой строке, и в каждом столбце, и в каждом блоке судоку каждая цифра от 1 до 9 может находиться только 1 раз.
В Эксель тоже имеется понятие «область» – это интервал смежных ячеек, или же просто отдельная ячейка (иногда «область» может состоять из одной ячейки). В «область» Эксель может входить как массив, в котором есть несколько строк и несколько столбцов Эксель, так и тот массив, который содержит несколько смежных ячеек одной строки или одного столбца. В принципе, каждая область судоку является также и областью Эксель. Но не каждая область Эксель будет являться областью судоку. Область Эксель может объединять как несколько разных областей судоку, а может и вообще находиться вне квадрата, содержащего все ячейки судоку. А еще область Эксель может включать в себя несколько частей от разных областей судоку.
Существуют следующие 2 причины, по которым кандидат судоку может считаться «главным»:
1. Если в какой-то области судоку какой-то конкретный кандидат (например, единица или двойка) встречается только один раз. Рассмотрим эту ситуацию более подробно:
1.1. Если в какой-то строке судоку среди всех кандидатов нужный нам кандидат встречается только один раз. Приведем пример. Допустим, что нам нужно заполнить следующее судоку (рисунок 1.1):
Рисунок 1.1.
Это судоку, которое было изображено на рисунке 1.1, будет часто встречаться в этой книге. Поэтому давайте договоримся так: присвоим этому судоку номер, и это судоку будет называться в этой книге «судоку №1».
В данном судоку число 39 в верхнем левом углу рисунка означает, что в судоку на данном этапе заполнено ровно 39 цифр (в заполненном до конца судоку будет 81 цифра).
Правда, получается так, что буквы Е и Ё очень похожи, да и буква З (зэ) очень похожа на цифру 3 (три).
Чтобы избежать всяких неудобств, неразберихи или путаницы, связанных с похожими буквами и цифрами, изменим буквенную нумерацию строк судоку (рисунок 1.2):
Рисунок 1.2.
Теперь не должно возникнуть недоразумений или разночтений, связанных с неправильной расшифровкой букв или цифр.
Вот какими будут кандидаты для первой (верхней) строки этого судоку (рисунок 1.3):
Рисунок 1.3.
Разобьем эту строку на три части, чтобы было не так мелко и было удобнее смотреть (рисунок 1.4):