Техника решения судоку. Пример решения проблем – самый сложный судоку

Судоку - весьма интересная головоломка. Необходимо расставить цифры от 1 до 9 в поле таким образом, чтобы каждая строка, столбец и блок 3 х 3 клетки содержали все цифры, и при этом они не должны повторяться. Рассмотрим пошаговую инструкцию, как играть в судоку, основные методы и стратегию решения.

Алгоритм решения: от простого к сложному

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

Одиночные кандидаты

Прежде всего, для более наглядного объяснения того, как играть в судоку, введем систему нумерации блоков и ячеек поля. Как ячейки, так и блоки нумеруются сверху вниз и слева направо.

Начнем рассматривать наше поле. Для начала необходимо отыскать одиночных кандидатов на место в ячейке. Они могут быть скрытыми или явными. Рассмотрим возможных кандидатов шестого блока: мы видим, что лишь в одной из пяти свободных ячеек присутствует уникальная цифра, следовательно, четверку можно смело вписывать в четвертую ячейку. Рассматривая этот блок дальше, можно сделать вывод: во второй ячейке должна быть цифра 8, так как после исключения четверки восьмерка в блоке больше нигде не встречается. С таким же обоснованием ставим цифру 5.

Внимательно просматривайте все возможные варианты. Взглянув на центральную ячейку пятого блока, обнаружим, что кроме цифры 9 там не может быть больше никаких вариантов - это явный одиночный кандидат для данной клетки. Девятку можно вычеркнуть из остальных ячеек этого блока, после чего с легкостью проставляются остальные цифры. По такому же методу проходим по ячейкам других блоков.

Как обнаружить скрытые и явные «голые пары»

Проставив необходимые цифры в четвертом блоке, вернемся к незаполненным ячейкам шестого блока: очевидно, что цифра 6 должна находиться в третьей клетке, а 9 - в девятой.

Понятие «голая пара» присутствует только в игре судоку. Правила их обнаружения следующие: если в двух ячейках одного блока, строки или столбца присутствует идентичная пара кандидатов (и только эта пара!), то остальные ячейки группы их иметь не могут. Объясним это на примере восьмого блока. Проставив в каждую клетку возможных кандидатов, обнаруживаем явную «голую пару». Цифры 1 и 3 присутствуют во второй и пятой ячейках этого блока, и там и там присутствует всего лишь по 2 кандидата, следовательно, из остальных ячеек их можно смело исключать.

Завершение разгадывания головоломки

Если вы усвоили урок того, как играть в судоку, и шаг за шагом выполняли вышеперечисленные указания, то у вас должна получиться примерно такая картина, как на этом поле:

Здесь можно обнаружить одиночных кандидатов: единица в седьмой ячейке девятого блока и двойка в четвертой ячейке третьего блока. Попробуйте решить головоломку до конца. Теперь сравните полученный результат с правильным решением.

Получилось? Поздравляем, ведь это значит, что вы успешно усвоили уроки того, как играть в судоку, и научились разгадывать простейшие головоломки. Существует немало разновидностей этой игры: судоку разных размеров, судоку с дополнительными областями и дополнительными условиями. Игровое поле может варьироваться от 4 х 4 до 25 х 25 клеток. Вы можете встретить головоломку, в которой цифры не могут повторяться и в дополнительной области, например, по диагонали.

Начинайте с простых вариантов и постепенно переходите к более сложным, ведь с тренировками приходит и опыт.

Решение судоку - процесс творческий. Правила головоломки очень просты, хотя логические рассуждения во время поиска решения могут быть разной степени сложности. Опыт приходит только со временем, и каждый игрок разрабатывает собственную стратегию. А чтобы вы могли лучше ориентироваться в способах решения головоломок и вошли во вкус, представляем некоторые рекомендации.

Начните решение с единицы.

1. Сначала "осмотритесь" на игровом поле, отыскав все ячейки с цифрой "1".

2. Проверьте последовательно каждый из блоков 3х3, содержит ли он уже единицу. Если содержит, рассмотрите следующий.

3. Если единицы в блоке еще нет, попробуйте найти все ячейки внутри этого блока, в которых могла бы стоять единица. Не забывайте о правиле: каждая цифра может стоять в каждой строке, в каждом столбце и каждом блоке только один раз. Исключите из рассмотрения все ячейки блока, в которых цифра "1" не может находиться, потому что столбец или строка уже "заняты". Вполне вероятно, что найдется такой блок, в котором останется всего одна клетка, в которой может находиться единица. Впишите ее.

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

После того как вы "пройдете" все блоки с цифрой "1", повторите поиск с другим числом. Например с двойкой. Потом с тройкой и так далее. До тех пор, пока вы не проверите все цифры от 1 до 9. И вы увидите, что заполнили уже много клеток. После чего советуем повторить всю "процедуру" еще раз с самого начала - снова от 1 до 9. Во второй раз дело пойдет легче, потому что многие клетки уже заполнены. И там, где вы сомневались, можно уверенно вписать цифру.

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

Для удобства объяснения будем использовать нумерацию строк, столбцов и блоков 3х3 от 1 до 9. Порядок нумерации: слева - направо и сверху - вниз.

Обозначения:

1. Серый блок, строка или столбец - это "зона", которую анализируем в поисках решения;

2. Выделенная "жирная" цифра(синего цвета) - искомая цифра, найденная в процессе анализа;

3. Линии показывают, что по этому направлению не может быть поставлена цифра, от которой эта линия начинается.

Находим цифру "1" во 2-м блоке. Линии, идущие от единиц 5-го и 8-го блоков, перечеркивают остальные пустые клетки.

Находим цифру "1" в 4-м блоке. Для этого снала определим, где в 6-м блоке могут быть единицы, проводя линии от единиц 5-го и 9-го блоков - две единички в верхнем ряду. Уже от них проводим линию в сторону 4-го блока и линию от единицы 5-го блока.

Поиск возможных двоек не увенчался успехом, но можно найти тройку в 9-м блоке, проведя линии от троек в 3-м и 6-м блоках. Не нашлись варианты и для цифр "4", "5", "6", "7". А вот цифра "8" нашлась в 8-м квадрате: линии от восьмерок 2-го, 5-го и 7-го блоков. Девятка тоже не нашлась.

Начнем новый поиск единиц. Нашлась единица в первом блоке: линии от единиц во 2-м и 9-м блоках определили возможные положения единицы в 3-м блоке, от них линии потянулись в 1-й блок. Остальные линии видны на рисунке. Следующая единица нашлась в блоке 7.

Первая двойка нашлась в блоке 4, после чего там же определилась и первая пятерка. Цифры "3", "4", "6", "7" найдены не были.

Цифра "8" блока 1 определяется по линиям от восьмерок из блоков 4 и 7. Затем найдем девятку 9-го ряда: так как ее не может быть в блоках 7 и 8 (см. линии от соответствующих девяток), то она стоит в блоке 9.

Цифра "9" в 1-й строке: ее не может быть в блоке 2, значит она в блоке 3. В оставшуюся клетку строки вписываем "5". Две цифры "9" нашлись в блоках 5 и 6. Начинаем опять с цифры "1".

Первой нашлась четвертка 6-го блока. Затем четверка 5-го столбца - она не может быть в 4-й и в 7-й строке. Тройки не может быть в 7-й строке, значит она в 4-й. Тогда в оставшейся ячейке шестерка.

В следующем шаге очередь не обязательна: сначала находим восьмерку, а затем единицу в блоке 6, или наоборот.

Продолжаем расставлять восьмерки: сначала находим "8" в блоке 9, а от нее ведем линию, определяя восьмерку в блоке 3.

Следующими нашлись цифры "1" и "6" в блоке 3, очередность нахождения не принципиальна.

Затем определимся с цифрой "7" в 9-м столбце: ее не может быть в блоке 6, тогда она во 2-й строке. От пятерки в блоке 1 проводим линию - находим место цифре "5" в 3-м блоке. В свободную клетку вписываем последнюю цифру - "2".

Во втором ряду находим цифру "2", затем "4" и, наконец "9".

Затем находим цифру "4" в блоке 8. В оставшейся клетке - "7". Ведем от нее линию вверх до блока 5 - новая семерка. В незаполненной клетке 9-й строки - "7".

Найдем последовательно цифры "5", "2", "6" в блоке 5 и цифры "7", "3" в 6-м ряду. Затем получим "5" и "6" в 6-м блоке. Последняя цифра "6" в 4-м блоке.

Следующие "7" и "3" в 1-м блоке; цифры "7" и "2" в 7-м столбце и "5" в блоке 9. Анализируем 7-ю строку, 2-й столбец и расставляем сначала "9", затем "3" и "2". Последний штрих - "4" и "6".

Решение закончено.

В очень сложных задачах встречается еще один прием. Его используют, когда никак не получается вычислить единственный ход. Есть как минимум две клетки для одной цифры в блоке (строке/столбце). Перебирать в уме все последствия от выбранной наугад позиции чрезвычайно трудно. Тогда следует цифру вписать наугад, но карандашем. При этом единственные варианты можно сразу вписывать шариковой ручкой. Если через несколько ходов обнаруживается ошибка, например, какую либо цифру вписать в блок невозможно - нет подходящего места, то весь карандашный вариант стирается и в начальных клетках вписывается второй вариант. Еще можно использовать запись в клетках всех возможных цифр на данный момент, это помогает быстрее ориентироваться в поиске решения. В любом случае начинайте с легких головоломок и успехов вам!

Поле судоку представляет собой таблицу 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» можно исключить.

Математическая головоломка под названием « » родом из Японии. Она получила широкое распространение во всем мире благодаря своей увлекательности. Для ее решения потребуется сконцентрировать внимание, память, задействовать логическое мышление.

Головоломку печатают в газетах и журналах, существуют компьютерные версии игры и мобильные приложения. Суть и правила в любой из них одинаковы.

Как играть

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

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

Сделать это нужно так, чтобы цифры не повторялись:

  • в каждом столбце,
  • в каждой строке,
  • в любом из малых квадратов.

Таким образом в каждой строке и каждом столбце большого квадрата будут расположены цифры от одного до десяти, любой малый квадрат также будет содержать эти цифры без повторений.

Уровни сложности

Игра имеет единственное правильное решение. Есть различные уровни сложности: простую головоломку, с большим количеством заполненных клеток, можно решить за несколько минут. На сложную, где расставлено малое количество цифр, можно потратить несколько часов.

Методики решения

Применяются различные подходы к решению задач. Рассмотрим самые распространенные.

Метод исключения

Это дедуктивный способ, он предполагает поиск однозначных вариантов - когда для записи в ячейку подходит лишь одна цифра.

В первую очередь принимаемся за квадрат, наиболее заполненный цифрами, - левый нижний. В нем не хватает единицы, семерки, восьмерки и девятки. Чтобы узнать, куда поставить единичку, посмотрим на столбцы и строки, где есть эта цифра: она есть во втором столбце, поэтому наша пустая клетка (самая нижняя во втором столбце) не может ее содержать. Остается три возможных варианта. Но нижняя строка и вторая с самого низа строка также содержат единичку - поэтому методом исключения у нас остается правая верхняя пустая клетка в рассматриваемом подквадрате.

Подобным образом заполняем все пустые клетки.

Запись чисел-кандидатов в ячейку

Для решения в левом верхнем углу клетки записываются варианты - числа-кандидаты. Затем неподходящие по правилам игры «кандидаты» вычеркиваются. Таким образом постепенно заполняется все свободное пространство.

Опытные игроки соревнуются друг с другом в мастерстве, в скорости заполнения пустых клеток, хотя эту головоломку лучше всего решать не спеша - и тогда успешное завершение судоку принесет огромное удовлетворение.

Всё таки решить эту головоломку сможет почти каждый. Главное выбрать себе уровень сложности по плечу. Судоку интересная головоломка, хорошо занимающая сонный мозг и свободное время. В целом любой, кто пытался её решить, уже сумел выделить некоторые закономерности. Чем больше её решаешь, тем лучше начинаешь понимать принципы игры, но и тем больше хочется как-то улучшить свой способ решения. Со времени возникновения судоку люди разработали уже множество различных способов решения, какие-то проще, какие-то сложнее. Ниже приведён примерный набор базовых подсказок и несколько из наиболее простых методов решения судоку. Для начала определимся с терминологией.

Искушённые любители могут купить настольную версию судоку на ozon.ru

Терминология

Способ 1: Синглы

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

1.1.Очевидные синглы

Поскольку эти пары обе находятся в третьей области (правой верхней), мы также можем исключить числа 1 и 4 из остальных клеток этой области.

Когда три клетки в одной группе не содержат иных кандидатов кроме трех, эти числа могут быть исключены из остальных клеток группы.

Обратите внимание: не обязательно, чтобы эти три клетки содержали все числа трио! Необходимо только чтобы эти клетки не содержали других кандидатов.

В этом ряду мы имеем трио 1,4,6 в клетках A, С и G, или двух кандидатов из этого трио. Эти три клетки будут обязательно содержать всех трех кандидатов. Поэтому они не могут быть в другом месте в этом рядом, и поэтому могут быть исключены из других клеток (E и F).

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

3.2.Скрытые группы кандидатов

Для очевидных групп кандидатов (предыдущий метод: 3.1) пары, трио и квартреты позволяли исключить кандидатов из других клеток группы.
В этом методе, скрытые группы кандидатов позволяют исключить других кандидатов из содержащих их клеток.

Если есть N клеток (2,3 или 4), содержащие N общих чисел (и они не встречаются в других клетках группы), тогда остальные кандидаты для этих клеток могут быть исключены.

В этом ряду пара (4,6) встречается только в клетках A и C.

Остальные кандидаты, таким образом, могут быть исключены из этих двух клеток, поскольку они должны содержать либо 4 либо 6 и никаких других.

Как и в случае очевидных трио и квартетов, клетки не обязаны содержать все числа из трио или квартера. Скрытые трио очень сложно рассмотреть. К счастью, они не часто используются для решения судоку.
Скрытые квартеты разглядеть практически невозможно!

Правило 4: Сложные методы.

4.1. Связанные пары (бабочка)

Следующие методы не обязательно более сложные для понимания чем вышеописанные, но не так просто определить когда они должны применяться.

Этот метод может применяться к областям:

Как и в предыдущем примере, две колонки (B и C), где 9 может быть только в двух ячейках (B3 и B9, C2 и C8).

Поскольку B3 и C2, как и B9 и C8 находятся внутри одной области (а не в одном ряду, как в предыдущем примере), 9 может быть исключена из остальных клеток этих двух областей.

4.2 Сложносвязанные пары (рыба)

Этот метод является более сложным вариантом предыдущего (4.1 Связанные пары).

Вы можете применить его когда один из кандидатов присутствует не более чем в трех рядах и во всех рядах они находятся в одних и тех же трех колонках.