Судоку прохождение. О методах решения проблем – судоку полный курс
Судоку - это математическая головоломка, родиной которой считается страна восходящего солнца - Япония. Время за невероятно увлекательной и развивающей загадкой летит незаметно. В статье будут приведены способы, методы и стратегия, как решать судоку.
История названия игры
Как ни странно, но Япония не является родиной игры. На самом деле головоломку изобрел знаменитый математик Леонард Эйлер в XVIII веке. Из курса высшей математики многие должны помнить знаменитые "круги Эйлера". Ученого увлекали области комбинаторики и логики высказываний, свои квадраты различных порядков он называл "латинскими" и "греко-латинскими", так как использовал для составления в основном буквы. Но настоящую популярность головоломка приобрела после регулярных публикации в японском журнале Nikoli, где и получила название Sudoku в 1986 году.
Как выглядит загадка?
Головоломка представляет собой квадратное поле с размерами 9 на 9 клеток. В зависимости от сложности и вида головоломки компьютер оставляет заданное количество клеток квадрата заполненными. Иногда начинающих интересует вопрос: "Сколько вариантов головоломки можно составить?".
По правилам комбинаторики количество перестановок можно узнать, рассчитав факториал числа элементов. Итак, в судоку используются цифры от 1 до 9, значит необходимо вычислить факториал 9. Путем нехитрых вычислений получим 9! = 1*2*3*4*5*6*7*7*9 = 362 880 - вариантов различных комбинаций строк. Далее необходимо воспользоваться формулой матричных перестановок и подсчитать количество возможным положений строк и столбцов. Формула подсчета довольно сложна, достаточно лишь указать, что при замене только в одной тройке столбцов/строк, можно увеличить итоговое количество вариантов в 6 раз. Перемножив значения получим 46 656 - способов перестановок в матрице загадки только для 1 комбинации. Нетрудно догадаться, что итоговое число будет равно 362 880 * 46 656 = 16 930 529 280 вариантов игры - решать не перерешать.
Однако, по расчетам Бертхама Фельгенхауэра, у головоломки гораздо больше решений. Формулы Бертхама очень сложны, но дают итоговое количество перестановок в 6 670 903 752 021 072 936 960 - вариантов.
Правила игры
Правила игры судоку колеблются в зависимости от разновидности головоломки. Но для всех вариантов общим являются требование классического судоку: цифры от 1 до 9 не должны повторяться по вертикали и горизонтали поля, а также в каждом выделенном участке "три на три".
Существуют и другие виды игры, например, судоку "чет-нечет", "диагональное", "виндоку", "жирандоль", "области" и "латиница". В латинице вместо цифр используют буквы латинского алфавита. Вариант чет-нечет следует решать, как судоку обычный, только учитывать разноцветные области. В клетках одного цвета должны стоять четные цифры, а второго - нечетные. В диагональной загадке к классическим правилам "вертикаль, горизонталь, три на три" добавляется еще две диагонали поля, в которых тоже не должно быть повторений. Разновидность области - это вид цветного судоку, в котором отсутствуют деления "три на три" классического вида игры. Вместо них с помощью цвета или жирных границ, выделяют произвольные области из 9 клеток, в которых необходимо разместить цифры.
Как правильно решать судоку?
Главное правило загадки гласит: существует только один правильный вариант цифры для каждой клетки поля. При выборе неверного числа на каком-то этапе дальнейшее решение станет невозможным. Числа по вертикали и горизонтали начнут повторяться.
Самый простой пример утверждения - это ситуация с 8 известными числами по горизонтали, вертикали или в области "три на три". Способы, как решать судоку в таком случае, очевидны - вписать в требуемый квадрат недостающую цифру последовательности от 1 до 9. В примере на изображении выше - это будет число 4.
Иногда незаполненными остаются две клетки области "три на три". В этом случае каждая клетка имеет два возможных варианта заполнения, но только один правильный. Сделать верный выбор можно рассмотрев пустые области не только как часть области, но и часть вертикали и горизонтали. Например, в квадрате "три на три" не хватает 2 и 3. Нужно выбрать одну клетку и рассмотреть вертикаль и горизонталь пересечением, которых она является. Допустим, по вертикали уже есть одна 3, но в обеих последовательностях не хватает 2. Тогда выбор очевиден.
Загадки начального уровня сложно, как правило, предоставляют возможность заполнить несколько клеток единственно верными значениями сразу же. Необходимо лишь внимательно рассмотреть игровое поле. Но не всегда выбор способов/методов, как решать судоку, столь прост.
Что означает "предопределенный выбор" в судоку?
Иногда выбор является не единственным, но, тем не менее, предопределенным. Назовем такое число - "уникальный кандидат". Найти такое расположение цифр на поле загадки несложно, но потребует определенного опыта в решении головоломки. Пример, как правильно решать судоку с уникальным кандидатом, подробно описан для варианта игрового поля на изображении ниже.
В выделенном красном квадрате на первый взгляд может стоять любая цифра, кроме 5. Однако, на самом деле, уникальным кандидатом для места является число 4. Необходимо рассмотреть все вертикали и горизонтали рассматриваемой области "три на три". Итак, в вертикали 2 и 3 присутствуют четверки, значит 4 маленького поля может находиться в одном из трех квадратов первого столбца. Верхний квадрат уже занят цифрой 5, количество мест расположения символа 4 сокращается. В нижней горизонтали области также не трудно отыскать четверку, следовательно, из 3 вариантов расположения числа остался только один.
Поиск уникального кандидата на игровом поле
Рассмотренный пример был очевиден, так как других чисел на поле просто не наблюдалось. Найти уникального кандидата в конкретной головоломке непросто. Игровое поле на изображении ниже послужит наглядным примером для объяснения метода, как решать судоку способом поиска уникального кандидата.
Хотя описание варианта решения не кажется простым, его применение на практике не вызывает затруднений. Уникальный кандидат всегда ищется в конкретной области "три на три". В связи с этим игрока интересуют только три вертикали и три горизонтали игрового поля. Все остальные считаются несущественными и просто отбрасываются. В примере необходимо найти место уникального кандидата цифры 7 для центральной области . Угловые квадраты рассматриваемого поля заняты цифрами, а в центральной вертикали уже присутствует число 7. Это значит, что единственными возможными квадратами для размещения уникального кандидата 7 являются 1 и 3 клетка средней строки области "три на три".
Как решать сложные судоку?
В каждом виде игры разделяют 4 уровня сложности. Они различаются количеством цифр в начальном варианте поля. Чем их больше, тем легче решать судоку. Как и в других играх, поклонники устраивают соревнования и целые чемпионаты по судоку.
Самые сложные варианты игры предполагают большое количество вариантов заполнения каждой клетки. Иногда их может быть максимально возможное количество - 8 или 9. В таких ситуациях рекомендуется записывать карандашом всех варианты по краям и углам клетки. Перечисление всех комбинаций, при детальном изучении, уже может помочь исключить пересекающиеся числа и сократить количество вариаций для отдельно взятой клетки.
Цветовые стратегии решения головоломки
Более сложным вариантом игры являются загадки судоку с цветом. Сложными такие головоломки считаются из-за введения дополнительных условий. На самом деле цвет -не только элемент усложнения, но и своеобразная подсказка, которой не стоит пренебрегать при решении. Также это относится к игре чет-нечет.
Но цвет можно использовать и при решении обычного судоку, отмечая более вероятные случаи подстановки. В приведенном выше изображении головоломки, цифра 4 может быть поставлена только в синие и оранжевые клетки, все остальные варианты заведомо ошибочны. Выделение указанных областей позволит отвлечься от цифры 4 и переключиться на поиск других значений, при этом забыть о клетках окончательно не получится.
Судоку для детей
Это может прозвучать странно, но дети любят решать судоку. Игра очень хорошо развивает логику и образное мышление . Ученые уже доказали, что игра предотвращает смерть клеток головного мозга. Люди, регулярно решающие головоломку, обладают более высоким уровнем IQ.
Для совсем маленьких детей, еще не знающих цифр, разработаны варианты судоку с символами. Загадка абсолютно семантически независима. Родители должны обязательно научить малышей играть в судоку, если хотят развивать логику, концентрацию и мышление детей. Игра полезна для поддержания умственных способностей в любом возрасте. Исследователи сравнивают действие головоломки на мозг человека с эффектом физических упражнений для развития мускулатуры. Психологи утверждают, что судоку избавляет от депрессии и помогает в лечении слабоумия.
Хочется сказать, что Sudoku - это действительно интересная и увлекательная задача, загадка, пазл, головоломка, цифровой кроссворд, называть ее можно как угодно. Решение которой, доставит не только настоящее удовольствие для людей думающих, но и позволит в процессе увлекательной игры развивать и тренировать логическое мышление, память, усидчивость.
Для тех, кто уже знаком с игрой в любых ее проявлениях, правила известны и понятны. А для тех, кто только думает начать, наша информация может быть полезной.
Правила игры в Судоку не сложные, они встречаются на страницах газет или их достаточно легко, можно найти в Internet.
Основные моменты укладываются в две строчки: главная задача играющего заполнить все ячейки цифрами от 1до 9. Сделать это нужно таким образом, чтобы в строке столбце и мини-квадрате 3х3 ни одна из цифр не повторялась дважды.
Сегодня мы предлагаем Вам несколько вариантов электронной игры , включающих более миллиона встроенных вариантов головоломок в каждом игровом плеере.
Для наглядности и лучшего понимания процесса решения загадки, рассмотрим один из простых вариантов, первого уровня сложности Sudoku-4tune, 6** серии.
И так, дано игровое поле, состоящее из 81-ой ячейки, которые в свою очередь составляют: 9-ть строк, 9-ть столбцов и 9-ть мини-квадратов размером 3х3 ячейки. (Рис.1.)
Пусть Вас не смущает в дальнейшем упоминание об электронной игре. Вы можете встретить игру и на страницах газет, или журналов основной принцип сохраняется.
Электронная версия игры, предоставляет большие возможности, по выбору уровня сложности головоломки, вариантов самой головоломки и их количества, по желанию игрока, в зависимости от его подготовки.
При включении электронной игрушки, в ячейках игрового поля будут даны ключевые цифры. Переносить или изменять которые нельзя. Выбрать можно вариант, более подходящий для решения, на Ваш взгляд. Рассуждая логически, отталкиваясь от приведенных цифр необходимо постепенно заполнять все игровое поле цифрами от 1 до 9.
Пример начального расположения цифр приведен на рис.2. Ключевые цифры, как правило, в электронной версии игры имеют соответствующие пометки подчеркивание или знак точки в ячейке. Для того чтобы не путать их в дальнейшем с цифрами, которые будут установлены Вами.
Посмотрев на игровое поле. Необходимо определиться с чего же нужно начинать решение. Как правило, нужно определить строку, столбец или мини квадрат, в которых имеется минимальное количество пустых ячеек. В приведенном нами варианте, сразу можно выделить две строки, верхнюю и нижнюю. В этих строках не достает всего по одной цифре. Таким образом, принимается простое решение, определив не достающие цифры -7 для первой строки и 4 для последней, вписываем их в свободные ячейки рис.3.
Получившийся результат: две заполненные строки, имеющие цифры от 1 до 9 без повторений.
Следующий ход. Столбец номер 5 (слева на право) имеет всего две свободные ячейки. После не долгих размышлений определяем недостающие цифры - 5 и 8.
Для достижения успешного результата в игре, необходимо понять, что ориентироваться необходимо по трем основным направлениям столбец, строка и мини-квадрат.
В данном примере сложно сориентироваться только по строкам, или столбцам, но если обратить внимание на мини-квадраты то становится понятно. Вписать цифру 8 во вторую (с верху) ячейку рассматриваемого столбца нельзя, иначе во втором мине-квадрате будет две восьмерки. Аналогично и с цифрой 5 для второй ячейки (снизу) и второго нижнего мини-квадрата рис.4 (не правильное расположение).
Хотя и решение кажется правильным для столбца, девять цифр, в столбце, без повторения, оно противоречит основному правил. В мини-квадратах цифры также не должны повторяться.
Соответственно для правильного решения во вторую (сверху) ячейку необходимо вписать 5, а во вторую (снизу)-8. Данное решение полностью соответствует правилам. Верный вариант см. рис 5.
Дальнейшее решение, простой с виду, задачи, требует внимательного рассмотрения игрового поля и подключения логического мышления. Можно снова воспользоваться принципом минимального количества свободных ячеек и обратить внимание на третий и на седьмой столбец (слева на право). В них не заполненными остались по три ячейки. Посчитав недостающие цифры, определяем их значения - это 2,3 и 9 для третьего столбца и 1,3 и 6 для седьмого. Оставим пока заполнение третьего столбца, поскольку с ним нет определенной ясности в отличие от седьмого. В седьмом столбце сразу можно определить расположение цифры 6 - это вторая снизу свободная ячейка. Из чего сделан такой вывод?
При рассмотрении мини-квадрат, в состав которого, входит вторая ячейка, становится понятно, что в нем уже присутствуют цифры 1и3. Из необходимой нам цифровой комбинации 1,3 и 6 другой альтернативы нет. Заполнение оставшихся двух свободных ячеек седьмого столбца, так же не вызывает затруднений. Поскольку третья строка, в своем составе уже имеет заполненную 1, в третью с верху ячейку седьмого столбца вписывается 3, а в единственную оставшуюся свободную вторую ячейку 1. Пример см. рис 6.
Оставим пока третий столбец для более четкого понимания момента. Хотя если есть желание, можно сделать для себя пометку, и внести предполагаемый вариант необходимых для установки цифр в эти ячейки, которые можно будет исправить в случае прояснения ситуации. Электронные игры Sudoku-4tune, 6** серии позволяют вписывать более одной цифры в ячейки, для памятки.
Мы же проанализировав ситуацию, обратимся к девятому (нижнему правому) мини-квадрату, в котором после нашего решения осталось три свободные ячейки.
Проанализировав ситуацию можно заметить (пример заполнения мини-квадрата), что для полного его заполнения не достает следующих цифр 2,5 и 8. Рассмотрев среднюю, свободную ячейку можно заметить, что из необходимых цифр сюда подходит только 5. Поскольку 2 присутствует в верхней ячейке столбца, а 8 в строке в состав, которой, помимо мини-квадрата входит данная ячейка. Соответственно в средней ячейке последнего мини-квадрата вписываем цифру 2, (она не входит ни в строку, ни в столбец), а в верхнюю ячейку данного квадрата вписываем 8. Таким образом, у нас полностью заполнен нижний правый (9-й) мини-квадрат цифрами от 1 до 9, при этом цифры не повторяются и в столбцах ни в строках, рис.7.
По мере заполнения свободных ячеек, их количество уменьшается, и мы постепенно приближаемся к решению нашей головоломки. Но в то же время, решение задачи может, как упрощаться, так и усложняться. И первый способ заполнения минимального количества ячеек в строках, столбцах или мини-квадратах, перестает эффективно действовать. Поскольку уменьшается количество явно определенных цифр в определенной строке, столбце или мини-квадрате. (Пример: третий, оставленный нами столбец). В этом случае необходимо воспользоваться методом поиска отдельных ячеек, установка цифр, в которые не вызывает каких либо сомнений.
В электронных играх Sudoku-4tune, 6**серии предусмотрена возможность использования подсказки. Четыре раза за игру Вы можете задействовать эту функцию и компьютер сам, установит правильную цифру в выбранной Вами ячейке. В моделях 8** серии такая функция отсутствует, и использование второго метода становится наиболее актуальным.
Рассмотрим второй метод в используемом нами примере.
Для наглядности возьмем четвертый столбец. Незаполненное количество ячеек в нем достаточно велико, шесть. Просчитав недостающие цифры, определяем их - это 1,4,6,7,8 и 9. Сократить количество вариантов, можно взяв за основу средний мини- квадрат, в котором имеется достаточно большое количество определенных цифр и всего лишь две свободные ячейки данного столбца. Сопоставив их с необходимыми нам цифрами видно, что 1,6,и 4 можно исключить. Их не должно быть в данном мини-квадрате во избежание повторений. Остается 7,8 и 9. Обратим внимание, что в строке (четвертая с верху), в состав которой входит нужная нам ячейка уже есть цифры 7 и 8 из, тех трех оставшихся которые нам нужны. Таким образом, остается единственный вариант для данной ячейки -это цифра 9, рис.8 Сомнений в правильности данного варианта решения не вызывает и тот факт, что все рассмотренные и исключенные нами цифры, были изначально даны в задании. То есть, они не подлежат какому либо изменению или переносу, подтверждая однозначность выбранной нами цифры для установки в данную конкретную ячейку.
Используя два метода одновременно в зависимости от ситуации, анализируя и логически размышляя, Вы заполните все свободные ячейки и придете к правильному решению любой головоломки Sudoku, и данной загадки в частности. Попробуйте самостоятельно завершить решение нашего примера рис.9 и сравнить его с окончательным ответом приведен на рис.10.
Возможно, Вы, для себя определите какие либо дополнительные
ключевые моменты
в решении головоломок, и разработаете собственную систему. Или примите наши советы, и они окажутся полезными для Вас, и позволят, присоединится к
большому числу
любителей и поклонников этой игры. Желаем удачи.
В предыдущих статьях мы рассматривали разные подходы в решении проблем на примерах головоломок судоку. Пришло время попытаться, в свою очередь, проиллюстрировать возможности рассмотренных подходов на достаточно сложном примере решения проблем. Итак, сегодня мы приступим к самому "невероятному" варианту судоку. Терминологию и предварительные сведения вы, уж будьте так любезны, посмотрите в , иначе вам трудно будет понять содержание данной статьи.
Вот какие сведения я нашел об этом сверхсложном варианте в интернете:
Профессор Хельсинского университета Арто Инкала (Arto Inkala) утверждает (2011г.), что он создал самый сложный в мире кроссворд судоку. Эту сложнейшую головоломку он создавал три месяца.
По его словам, созданный им кроссворд невозможно решить с помощью одной лишь только логики. Арто Инкала утверждает, что даже самые опытные игроки на решение потратят не меньше нескольких дней. Изобретение профессора получило название AI Escargot (AI – инициалы ученого, Escargot – от англ. «улитка»).
Для решения этой непростой задачи, как утверждает Арто Инкала, в голове одновременно нужно держать восемь последовательностей, в отличие от обычных головоломок, где помнить нужно об одной-двух последовательностях.
Ну, "последовательности переборов" – это все же отдает машинным вариантом решения проблем, а те, кто решал задачу Арто Инкала посредством собственных мозгов, говорят об этом по-разному. Кто-то решал ее пару месяцев, кто-то объявил о том, что на это потребовалось лишь 15 минут. Ну что ж, чемпион мира по шахматам возможно и справился бы с задачей за такое время, а экстрасенс, если таковые обитают на нашей плане, возможно и еще быстрее. А еще мог быстро решить задачу тот, кто случайно с первого разу подобрал несколько удачных цифр для заполнения пустых ячеек. Скажем, одному из тысячи решателей задачи могло бы подобным образом и повезти.
Так вот, о переборе: если удачно выбрать две три правильных цифры, то перебирать восемь последовательностей (а это десятки вариантов) может и не потребоваться. Такое у меня было соображение, когда я решил приступить к решению указанной задачи. Для начала я, будучи уже подготовленным в рамках методик предыдущих статей, решил забыть о том, что знал до сих пор. Есть такой прием, заключающийся в том, что поиск решения должен протекать свободно, без навязанных ему схем и идей. А ситуация для меня была новой, так что требовалось на нее и по-новому взглянуть. Я расположил (в Эксель) исходную таблицу (справа) и рабочую таблицу, о смысле которой я уже имел случай рассказать в первой о судоку моей статье :
Рабочая таблица, напомню, содержит предварительно допустимые сочетания цифр в исходно пустых ячейках.
После обычной почти рутинной обработки таблиц ситуации немного упростилась:
Эту ситуацию я и начал изучать. Ну а поскольку я уже подзабыл, как именно я решал эту задачу несколькими днями раньше, то начинаю осмысливать ее по новой. Прежде всего, я обратил внимание на два числа 67 в ячейках четвертого блока и совместил их с механизмом вращения (перемещения) ячеек, о котором рассказывал в предыдущей статье. Перебрав все варианты вращения трех первых столбцов таблицы, я пришел к выводу, что цифры 6 и 7 не могут находиться в одном столбце и не могут вращаться асинхронно, они, в процессе вращения, могут лишь следовать одна за другой. Также, если присмотреться, семерка с четверкой как бы передвигаются синхронно по всем трем столбцам. Поэтому я делаю правдоподобное предположение, что в нижней левой ячейке блока 4 должна разместиться цифра 7, а в правой верхней – соответственно 6.
Но этот результат я пока принимаю лишь как возможный ориентир в опробовании других вариантов. А основное внимание я обращаю на число 59 в ячейке 4-го блока. Здесь может быть либо цифра 5, либо 9. Девятка обещает уничтожить очень много лишних цифр, т.е. упростить дальнейший ход решения задачи, и я начинаю с этого варианта. Но довольно быстро захожу в "тупик", т.е. далее надо снова делать какой-то выбор и как знать, как долго мой выбор будет проверяться. Я предполагаю, что если бы девятка действительно была когда-то правильным выбором , то Инкала вряд ли бы оставил такой очевидный вариант на виду, хотя механизм его программы мог и допустить подобный ляпсус. В общем, так или иначе, я решил сначала досконально проверить вариант с цифрой 5 в ячейке с числом 59.
Но уже позже, когда решил задачу, я, так сказать для очистки совести, все же вернулся к варианту с цифрой 9, чтобы определить как долго пришлось бы его проверять. Проверять пришлось не очень долго. Когда у меня в правой верхней ячейке блока 4 оказалась цифра 6, как и полагалось по предварительно выбранному ориентиру, то в правой средней ячейке возникло число 19 (убралась 6 из 169). Я выбрал для дальнейшего опробование цифру 9 в этой ячейке и быстро пришел к противоречивому результату, т.е. выбор девятки не верен. Тогда выбираю цифру 1 и снова проверяю, что из этого выйдет.
На каком-то шаге прихожу к ситуации:
где снова приходится делать выбор – цифру 2 или 8 в верхней средней ячейке блока 4. Проверяю оба варианта (2 и 8) и в обоих случаях заканчиваю противоречивым (не отвечающим условию судоку) результатом. Так что мог бы проверить вариант с цифрой 9 в средней нижней ячейке блока 4 с самого начала и много времени на это не потребовалось бы. Но я все же, как уже говорил, остановился на цифре 5 в упомянутой ячейке. Это привело меня к следующему результату:
Расположение цифр 4 и 7 в первых трех столбцах (колонках) свидетельствует о том, что они вращаются синхронно, что собственно и предполагалось при выборе цифры 7 для нижней левой ячейки 4-го блока. При этом двойка или девятка, будь любая из них требуемой цифрой в средней левой ячейке этого блока, должны соответственно двигаться асинхронно паре 4 и 7. Предпочтение в данном случае я отдал цифре 2, так как она "обещала" устранить много лишних цифр из чисел ячеек и, соответственно, быструю проверку допустимости данного варианта. А девятка быстро заводила в тупик – требовала подбора новых цифр. Таким образом, в левой средней ячейке блока с числом 29 я проставил не мой взгляд более предпочтительную из цифр – 2. Результат вышел следующим:
Далее мне пришлось еще раз сделать так сказать полупроизвольный выбор: выбрал двойку в ячейке с числом 26 в девятом блоке. Для этого достаточно было заметить, что 5 и 2 в трех нижних строках вращаются синхронно, так как 5 не вращалась синхронно ни с 1, ни с 6. Правда, синхронно могли вращаться еще 2 и 1, но из каких-то соображений – точно не помню – я выбрал 2 вместо числа 26, возможно потому, что этот вариант, по моей оценке, быстро проверялся. Впрочем, уже оставалось немного вариантов, и можно было достаточно быстро проверить любой из них. Можно было также вместо варианта с двойкой предположить, что цифры 7 и 8 вращаются синхронно в последних трех столбцах (колонках), а отсюда следовало, что в левой верхней ячейке 9-го блока могла быть только цифра 8, что также приводит к быстрой развязке задачи.
Надо сказать, что задача Арто Инкала не допускает чисто логического решения в рамках возможностей обычного человека – так она задумана, – но все же позволяет заметить некоторые перспективные варианты перебора возможных подстановок цифр и существенно сократить этот перебор. Попробуйте начать перебор с иных, чем в данной статье, позиций, и вы, убедитесь, что почти все варианты очень быстро заводят в тупик и требуется делать все новые и новые предположения относительно дальнейшего выбора подходящих подстановок цифр. Месяца два назад я уже пытался решить эту задачу, не имея той подготовки, которую я описал в предыдущих статьях. Проверил вариантов десять ее решения и оставил дальнейшие попытки. Последний же раз, уже будучи более подготовленным, я решал эту задачу полдня или немного более, но при этом с одновременным обдумыванием выбора с моей точки зрения наиболее показательных для читателей вариантов и также с предварительным обдумыванием текста будущей статьи. А окончательный результат решения получился следующий:
Собственно, данная статья не имеет самостоятельного значения , она написана лишь для иллюстрации того, как приобретенные навыки и теоретические соображения, описанные в предыдущих статьях, позволяют решать довольно сложные проблемы . А статьи были, напомню, не о судоку, а о механизмах решения проблем на примере судоку. Предметы, как по мне, совершенно разные. Однако поскольку судоку интересует многих, то я таким образом решил привлечь внимание к более существенному вопросу, касающемуся не собственно судоку, но решения проблем.
А в остальном – желаю вам успехов в решении всех проблем.
Используйте цифры от 1 до 9
Судоку играется на игровом поле, состоящем из 9 на 9 клеток, всего 81 клетка. Внутри игрового поля находятся 9 "квадратов" (состоящих из 3 x 3 клеток). Каждая горизонтальная строка, вертикальный столбец и квадрат (9 клеток каждый) должны заполняться цифрами 1-9, не повторяя никаких чисел в строке, столбце или квадрате. Это звучит сложно? Как видно из изображения ниже, каждое игровое поле Судоку имеет несколько клеток, которые уже заполнены. Чем больше клеточек изначально заполнено, тем легче игра. Чем меньше клеток изначально заполнено, тем труднее игра.
Не повторяйте никакие числа
Как вы можете видеть, в верхнем левом квадрате (обведен синим) уже заполнены 7 из 9 клеток. Единственные числа, которые отсутствуют в этом квадрате, это числа 5 и 6. Видя, какие числа отсутствуют в каждом квадрате, строке или столбце, мы можем использовать процесс исключения и дедуктивное мышление, чтобы решить, какие числа должны находиться в каждой клетке.
Например, в верхнем левом квадрате мы знаем, что для завершения квадрата нужно добавить числа 5 и 6, но глядя на соседние строки и квадраты мы пока не можем четко определить, какое число добавить в какую клетку. Это означает, что теперь мы должны пока пропустить верхний левый квадрат и вместо этого попытаться заполнить пробелы в некоторых других местах игрового поля.
Не нужно гадать
Судоку – это логическая игра, поэтому не нужно гадать. Если вы не знаете, какое число поставить в определенную клетку, продолжайте сканировать другие области игрового поля, пока не увидите возможность вставить нужное число. Но не пытайтесь "форсировать" что-либо - Судоку вознаграждает за терпение, понимание и решение различных комбинаций, а не за слепое везение или угадывание.
Используйте метод исключения
Что мы делаем, когда используем "метод исключения" в игре Судоку? Вот пример. В этой сетке Судоку (показано ниже) в левом вертикальном столбце (обведен синим) отсутствуют только нескольких чисел: 1, 5 и 6.
Один из способов выяснить, какие числа можно вставить в каждую клетку - это использовать "метод исключения", проверяя, какие другие числа уже имеются в каждом квадрате, поскольку не допускается дублирование чисел 1-9 в каждом квадрате, строке или столбце.
В этом случае мы можем быстро заметить, что в верхнем левом и центральном левом квадратах уже есть число 1 (числа 1 обведены красным). Это означает, что в крайнем левом столбце есть только одно место, в которое можно вставить число 1 (обведено зеленым). Вот как метод исключения работает в Судоку - вы узнаете, какие клетки свободны, какие числа отсутствуют, а затем исключаете числа, которые уже присутствуют в квадрате, столбцах и рядах. Соответственно заполняете пустые клетки отсутствующими числами.
Правила Судоку относительно несложные - но игра необычайно разнообразна, с миллионами возможных комбинаций чисел и широким диапазоном уровней сложности. Но все это основано на простых принципах использования чисел 1-9, заполнении пробелов на основе дедуктивного мышления и никогда не повторяющихся чисел в каждом квадрате, строке или столбце.
Поле судоку представляет собой таблицу 9х9 клеток. В каждую клетку заносится цифра от 1 до 9. Цель игры: расположить цифры таким образом, чтобы в каждой строке, в каждом столбце и в каждом блоке 3х3 не было повторений. Другими словами, в каждом столбце, строке и блоке должны быть все цифры от 1 до 9.
Для решения задачи в пустые клетки можно записывать кандидатов. Например, рассмотрим клетку 2-го столбца 4-ой строки: в столбце, в котором она находится, уже имеются цифры 7 и 8, в строке - цифры 1, 6, 9 и 4, в блоке - 1, 2, 8 и 9. Следовательно, из кандидатов в данной ячейке вычеркиваем 1, 2, 4, 6, 7, 8, 9, и у нас остается только два возможных кандидата – 3 и 5.
Аналогично, рассматриваем возможных кандидатов для других ячеек и получаем следующую таблицу:
С кандидатами решать интереснее и можно применять различные логические методы. Далее мы рассмотрим некоторые из них.
Одиночки
Метод заключается в отыскании в таблице одиночек, т.е. ячеек, в которых возможна только одна цифра и никакая другая. Записываем эту цифру в данную ячейку и исключаем ее из других клеток этой строки, столбца и блока. Например: в данной таблице имеются три «одиночки» (они выделены желтым цветом ).
Скрытые одиночки
Если в ячейке стоит несколько кандидатов, но один из них не встречается больше ни в одной другой ячейке данной строки (столбца или блока), то такой кандидат называется «скрытой одиночкой». В следующем примере кандидат «4» в зеленом блоке найден только в центральной ячейке. Значит, в этой ячейке обязательно будет «4». Заносим «4» в данную ячейку и вычеркиваем из других ячеек 2-го столбца и 5-ой строки. Аналогично, в желтом столбце кандидат «2» встречается один раз, следовательно, в данную ячейку заносим «2» и исключаем «2» из ячеек 7-ой строки и соответствующего блока.
Предыдущие два метода – это единственные методы, которые однозначно определяют содержимое ячейки. Следующие методы позволяют только уменьшать количество кандидатов в ячейках, что рано или поздно приведет к одиночкам или скрытым одиночкам.
Запертый кандидат
Бывают случаи, когда кандидат в пределах блока находится только в одном строке (или в одном столбце). В силу того, что одна из этих ячеек обязательно будет содержать этого кандидата, из всех остальных ячеек данной строки (столбца) этого кандидата можно исключить.
В примере ниже, центральный блок содержит кандидата «2» только в центральном столбце (желтые ячейки). Значит, одна из этих двух ячеек точно должна быть «2», и никакие другие ячейки в том ряду вне этого блока не могут быть «2». Поэтому «2» может быть исключен как кандидат из других ячеек этого столбца (ячейки зеленого цвета).
Открытые пары
Если две ячейки в группе (строке, столбце, блоке) содержат идентичную пару кандидатов и ничего более, то никакие другие ячейки этой группы не могут иметь значения этой пары. Эти 2 кандидата могут быть исключены из других ячеек в группе. В примере ниже, кандидаты «1» и «5» в колонках восемь и девять формируют Открытую Пару в пределах блока (желтые ячейки). Поэтому, так как одна из этих ячеек должна быть «1», а другая должны быть «5», кандидаты «1» и «5» исключаем из всех других ячеек этого блока (зеленые ячейки).
Тоже самое можно сформулировать для 3 и 4-х кандидатов, только участвует уже 3 и 4 ячейки, соответственно. Открытые тройки: из ячеек зеленого цвета исключаем значения ячеек желтого цвета.
Открытые четверки: из ячеек зеленого цвета исключаем значения ячеек желтого цвета.
Скрытые пары
Если в двух ячейках в группе (строке, столбце, блоке) содержат кандидаты, среди которых идентичная пара, не встречающаяся ни в одной другой ячейке данного блока, то никакие другие ячейки этой группы не могут иметь значения этой пары. Следовательно, все другие кандидаты этих двух ячеек могут быть исключены. В примере ниже, кандидаты «7» и «5» в центральной колонке находятся только в ячейках желтого цвета, значит, всех остальных кандидатов из этих ячеек можно исключить.
Аналогично, можно искать скрытые тройки и четверки.
x-wing
Если значение имеет только два возможных местоположения в какой-то строке (столбце), то оно обязательно должно быть назначено в одну из этих ячеек. Если же существует еще одна строка (столбец), где этот же кандидат также может быть только в двух ячейках и столбцы (строки) этих ячеек совпадают, то ни одна другая ячейка этих столбцов (строк) не может содержать данную цифру . Рассмотрим пример:
В 4-ой и 5-ой строках цифра «2» может быть только в двух ячейка желтого цвета, при чем эти ячейки находятся в одинаковых столбцах. Следовательно, цифра «2» может быть записана только двумя способами: 1) если «2» записать в 5-ый столбец 4-ой строки, то из желтых ячеек «2» надо исключит и тогда в 5-ой строке положение «2» определяется однозначно 7-ым столбцом.
2) если «2» записать в 7-ой столбец 4-ой строки, то из желтых ячеек «2» надо исключит и тогда в 5-ой строке положение «2» определяется однозначно 5-ым столбцом.
Следовательно, 5-ый и 7-ой столбец обязательно будут иметь цифру «2» либо в 4-ой строке, либо в 5-ой. Тогда из других ячеек данных столбцов цифру «2» можно исключить (зеленые клетки).
"Рыба Меч" (Swordfish)
Этот метод является вариацией метода .
Из правил головоломки следует, что если кандидат находится в трех строках и только в трех столбцах, то в других строках этого кандидата в этих столбцах можно исключить.
Алгоритм:
- Ищем строчки, в которых кандидат встречается не более трех раз, но при этом он принадлежит ровно трем колонкам.
- Исключаем кандидата из этих трех колонок из других строк.
Эта же логика применима и в случае трех колонок, где кандидат ограничивается тремя строками.
Рассмотрим пример. В трех строчках (3, 5 и 7-ая) кандидат «5» встречается не более трех раз (ячейки выделены желтым цветом). При этом они принадлежат только трем столбцам: 3, 4 и 7-ому. Согласно методу «Рыба меч» из других ячеек этих столбцов кандидата «5» можно исключить (зеленые ячейки).
В примере, приведенном ниже, так же применяется метод «Рыба меч», но уже для случая трех колонок. Исключаем кандидата «1» из ячеек зеленого цвета.
«X-wing» и «Рыба меч» можно обобщить на случай четырех строк и четырех столбцов. Данный метод будет называться «Медуза».
Цвета
Бывают ситуации, когда кандидат встречается только два раза в группе (в строке, столбце или блоке). Тогда искомая цифра обязательно будет в одном из них. Стратегия метода «Цвета» заключается в том, чтобы просматривать эту взаимосвязь с использованием двух цветов, например, желтого и зеленого. При этом решение может быть в клеточках только какого-то одного цвета.
Выделяем все взаимосвязанные цепочки и принимаем решение:
- Если какой-то незакрашенный кандидат имеет двух разноцветных соседей в группе (строке, столбце или блоке), то его можно исключить.
- Если в группе (строке, столбце или блоке) имеется два одинаковых цвета, то данный цвет является ложным. Кандидата из всех клеточек этого цвета можно исключить.
В следующем примере применим метод «Цвета» для ячеек с кандидатом «9». Начинаем раскрашивать с ячейки в левом верхнем блоке (2 строка, 2 столбец), закрасим ее в желтый цвет. В своем блоке она имеет только одного соседа с «9», закрасим его в зеленый цвет . Также у нее только один сосед в столбце, закрашиваем и его в зеленый цвет.
Аналогичным образом работаем с остальными ячейками, содержащими цифру «9». Получаем:
Кандидат «9» может быть либо только во всех желтых ячейках, либо во всех зеленых. В правом среднем блоке встретились две ячейки одинакового цвета, следовательно, зеленый цвет неверный, так как в данном блоке получается две «9», что недопустимо. Исключаем, «9» из всех зеленых клеток.
Еще один пример на метод «Цвета». Пометим парные ячейки для кандидата «6».
Клетка с «6» в верхнем центральном блоке (выделим сиреневым цветом ) имеет двух разноцветных кандидатов:
«6» обязательно будет или в желтой или в зеленой клетке, следовательно, из этой сиреневой клетки «6» можно исключить.