Система решения судоку. Логические головоломки

  • Tutorial

1. Основы

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


1.1 «Последний герой»

Рассмотрим седьмой квадрат. Всего четыре свободных клетки, значит что-то можно быстро заполнить.
"8 " на D3 блокирует заполнение H3 и J3 ; точно также "8 " на G5 закрывает G1 и G2
С чистой совестью ставим "8 " на H1

1.2 «Последний герой» в строке

После просмотра квадратов на очевидные решения, переходим к столбцам и строкам.
Рассмотрим "4 " на поле. Понятно, что она будет где-то в строке A .
У нас есть "4 " на G3 , что зыкрывает A3 , есть "4 " на F7 , убирающая A7 . И ещё одна "4 " во втором квадрате запрещает её повтор на A4 и A6 .
«Последний герой» для нашей "4 " это A2

1.3 «Выбора нет»

Иногда есть несколько причин для конкретного расположения. "4 " в J8 будет отличным примером.
Синие стрелки показывают, что это последнее возможное число в квадрате. Красные и синие стрелки дают нам последнее число в столбце 8 . Зеленые стрелки дают последнее возможное число в строке J .
Как видим, выбора у нас нет, кроме как поставить эту "4 " на место.

1.4 «А кто, как не я?»

Заполнение чисел проще проводить вышеописанными методами. Однако проверка числа, как последнего возможного значения, тоже даёт результаты. Метод стоит применять, когда кажется, что все числа есть, но чего-то не хватает.
"5 " в B1 ставится исходя из того, что все числа от "1 " до "9 ", кроме "5 " есть в строке, столбце и квадрате (отмечено зеленым).

На жаргоне это "Голая одиночка ". Если заполнять поле возможными значениями (кандидатами), то в ячейке такое число будет единственным возможным. Развивая эту методику, можно искать "Скрытые одиночки " - числа, уникальные для конкретной строки, столбца или квадрата.

2. «Голая миля»

2.1 «Голые» пары
"«Голая» пара " - набор из двух кандидатов, расположенных в двух ячейках, принадлежащих одному общему блоку: строке, столбцу, квадрату.
Понятно, что правильные решения головоломки будут только в этих ячейках и только с этими значениями, в то время как все другие кандидаты из общего блока могут быть убраны.


В этом примере несколько «голых пар».
Красным в строке А выделены ячейки А2 и А3 , обе содержащие "1 " и "6 ". Я пока не знаю, как именно они расположены здесь, но я спокойно могу убрать все другие "1 " и "6 " из строки A (отмечено желтым). Также А2 и А3 принадлежат общему квадрату, поэтому убираем "1 " из C1 .


2.2 «Threesome»
«Голые тройки» - усложненный вариант «голых пар».
Любая группа из трех ячеек в одном блоке содержащая в общем три кандидата является «голой тройкой» . Когда такая группа нашлась, эти три кандидата могут быть убраны из других ячеек блока.

Комбинации кандидатов для «голой тройки» могуть быть такими:

// три числа в трех ячейках.
// любые комбинации.
// любые комбинации.

В этом примере все довольно очевидно. В пятом квадрате ячейки E4 , E5 , E6 содержат [5,8,9 ], [5,8 ], [5,9 ] соответственно. Получается, что в общем у этих трех ячеек есть [5,8,9 ], и только эти числа там могут быть. Это позволяет нам убрать их из других кандидатов блока. Этот трюк даёт нам решение "3 " для ячейки E7 .

2.3 «Великолепная четверка»
"«Голая» четверка" весьма редкое явление, особенно в полной форме, и все же дает результаты при обнаружении. Логика решения такая же как и у «голых троек» .

В указанном примере в первом квадрате ячейки A1 , B1 , B2 и C1 в общем содержат [1,5,6,8 ], поэтому эти числа займут только эти ячейки и никакие другие. Убираем подсвеченных желтым кандидатов.

3. «Все тайное становится явным»

3.1 Скрытые пары
Отличным способом раскрыть поле будет поиск скрытых пар . Этот метод позволяет убрать лишних кандидатов из ячейки и дать развитие более интересным стратегиям.

В этой головоломке мы видим, что 6 и 7 есть в первом и втором квадратах. Кроме этого 6 и 7 есть в столбце 7 . Комбинируя эти условия, мы можем утверждать, что в ячейках A8 и A9 будут только эти значения и все другие кандидаты мы убираем.


Более интересный и сложный пример скрытых пар . Синим выделена пара [2,4 ] в D3 и E3 , убирающая 3 , 5 , 6 , 7 из этих ячеек. Красным выделены две скрытые пары, состоящие из [3,7 ]. C одной стороны, они уникальны для для двух ячеек в 7 столбце, с другой стороны - для строки E . Выделеные желтым кандидаты убираются.

3.1 Скрытые тройки
Мы можем развить скрытые пары до скрытых троек или даже скрытых четверок . Скрытая тройка состоит из трех пар чисел, расположенных в одном блоке. Такие как , и. Однако, как и в случае с «голыми тройками» , в каждой из трех ячеек не обязательно должно быть по три числа. Сработают всего три числа в трех ячейках. Например , , . Скрытые тройки будут замаскированы другими кандидатами в ячейках, поэтому сначала надо убедиться, что тройка применима к конкретному блоку.


В этом сложном примере есть две скрытые тройки . Первая, отмеченная красным, в столбце А . Ячейка А4 содержит [2,5,6 ], A7 - [2,6 ] и ячейка A9 -[2,5 ]. Эти три ячейки единственные, где могут быть 2 ,5 или 6, поэтому только они там и будут. Следовательно убираем лишних кандидатов.

Вторая, в столбце 9 . [4,7,8 ] уникальны для ячеек B9 , C9 и F9 . Используя ту же логику, убираем кандидатов.

3.1 Скрытые четверки

Прекрасный пример скрытых четверок . [1,4,6,9 ] в пятом квадрате могут быть только в четырех ячейках D4 , D6 , F4 , F6 . Следуя нашей логике, убираем всеъ других кандидатов (отмеченых желтым).

4. «Нерезиновая»

Если любое из чисел появляется дважды или трижды в одном блоке (строке, столбце, квадрате), тогда мы можем убрать это число из сопряженного блока. Есть четыре вида сопряжения:

  1. Пара или Тройка в квадрате - если они расположены в одной строке, то можно убрать все другие такие же значения из соответствующей строки.
  2. Пара или Тройка в квадрате - если они расположены в одном столбце, то можно убрать все другие такие же значения из соответствующего столбца.
  3. Пара или Тройка в строке - если они расположены в одном квадрате, то можно убрать все другие такие же значения из соответствующего квадрата.
  4. Пара или Тройка в столбце - если они расположены в одном квадрате, то можно убрать все другие такие же значения из соответствующего квадрата.
4.1 Указавыющие пары, тройки

В качестве примера покажу эту головоломку. В третьем квадрате "3 " находится только в B7 и B9 . Следуя утверждению №1 , мы убираем кандидатов из B1 , B2 , B3 . Аналогично, "2 " из восьмого квадрата убирает возможное значение из G2 .


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

4.2 Сокращаем несокращаемое

Эта стратегия включает в себя аккуратный анализ и сравнение строк и столбцов с содержимым квадратов (правила №3 , №4 ).
Рассмотрим строку А . "2 " возможны только в А4 и А5 . Следуя правилу №3 , убираем "2 " их B5 , C4 , C5 .


Продолжим решать головоломку. Имеем единственное расположение "4 " в пределах одного квадрата в 8 столбце. Согласно правилу №4 , убираем лишних кандитатов и, в добавок, получаем решение "2 " для C7 .

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

Искушённые любители могут купить настольную версию судоку на 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 Связанные пары).

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

Итак, сегодня я научу вас решать судоку .

Для наглядности возьмем конкретный пример и рассмотрим основные правила:

Правила решения судоку:

Желтым я выделил строку и столбец. Первое правило в каждой строке и каждом столбце могут быть цифры от 1 до 9, причем они не могут повторяться. Короче говоря – 9 клеток, 9 цифр – поэтому в 1-м и том же столбце не может быть 2-х пятерок, восьмерок и т.д. Аналогично для строк.

Теперь я выделил квадраты – это второе правило . В каждом квадрате могут быть цифры от 1-го до 9 причем они не повторяются. (Так же как и в строках и столбцах). Квадраты выделены жирными линиями.

Отсюда имеем общее правило для решения судоку : ни в строках , ни в столбцах ни в квадратах цифры не должны повторяться.

Ну что ж, давайте теперь попробуем его решить:

Я выделил единицы зеленым и показал направление, куда мы смотрим. А именно – нас интересует последний верхний квадрат. Можно заметить, что во 2-м и 3-м ряду этого квадрата не могут быть единицы иначе будет повторение. Значит – единица вверху:

Легко находится и двойка:

Теперь воспользуемся найденной только что двойкой:

Надеюсь, алгоритм поиска стал понятен, поэтому с этого момента буду рисовать быстрее.

Смотрим на 1-й квадрат 3-й строки (внизу):

Т.к. у нас там осталось 2 свободных клетки, то в каждой из них может быть одна из двух цифр: (1 или 6):

Это значит, что в столбце, который я выделил не может больше быть ни 1 ни 6 – значит в верхним квадрате ставим 6.

За неимением времени на этом и остановлюсь. Очень надеюсь, что логику вы уловили. Кстати, я взял не самый простой пример, в котором скорее всего не будут сразу видны все решения однозначно, а поэтому лучше пользоваться карандашом. Мы пока не знаем насчет 1 и 6 в нижнем квадрате, поэтому их рисуем карандашом – аналогично в верхнем квадрате будут карандашом нарисованы 3 и 4.

Если ещё немного порассуждать, используя правила - избавимся от вопроса где 3, а где 4:

Да, кстати, если вам какой-то момент показался непонятным – напишите, я поясню подробнее. Удачи с разгадыванием судоку.


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

Одиночка или последний герой.

И так, с чего начинается решение судоку? Не важно простого уровня сложности или нет. Но всегда в начале идёт поиск очевидных клеток для заполнения.

На рисунке показан пример одиночки - это цифра 4, которую смело можно поставить на клетку 2 8. Так как шестая и восьмая горизонтали, а также первая и третья вертикали, уже четвёркой заняты. Они показан стрелками зелёного цвета. И в левом нижнем малом квадрате у нас остаётся только одна незанятая позиция. На картинке цифра помечена зелёным цветом. Так же расставлены остальные одиночки, но без стрелок. Они окрашены в синий цвет. Таких одиночек может быть довольно много, особенно если цифр в начальном условии много.

Различают три способа поиска одиночек:

  • Одиночка в квадрате 3 на 3.
  • По горизонтали
  • По вертикали

Конечно можно хаотично просматривать и выявлять одиночек. Но лучше придерживаться какой-либо определённой системы. Самым очевидным будет начинать с цифры 1.

  • 1.1 Проверить квадраты, где нет единицы, проверить горизонтали и вертикали, которые пересекают данный квадрат. И если в них уже стоят единички, то исключаем полностью линию. Таким образом ищем единственное возможное место.
  • 1.2 Далее проверяем горизонтали. В каких присутствует единичка, а где нет. Проверяем в малых квадратах, в которые входит данная горизонталь. И если в них присутствует единичка, то пустые клетки данного квадрата исключаем из возможных кандидатов на искомую цифру. Так же проверим все вертикали и исключим те, в которых так же присутствует единичка. Если остаётся единственное возможное пустое место - то ставим искомую цифру. Если осталось два и более пустых кандидатов, то оставим данную горизонталь, переходим к следующей.
  • 1.3 Аналогично предыдущему пункту проверяем все горизонтали.

"Скрытые единицы"

Ещё подобную методику называют "а кто, если не я?!" Посмотрите на рисунок 2. Поработаем с левым верхним малым квадратом. Сначала пройдёмся первым алгоритмом. После чего удалось выяснить, что в клетке 3 1 есть одиночка - цифра шесть. Ставим её, А во все остальные пустые клетки проставим мелким шрифтом все возможные варианты, применительно к малому квадрату.

После чего мы обнаруживаем следующее, в клетке 2 3 может стоять только одна цифра 5. Конечно в данный момент пятёрка может стоять и на других клетках - этому ничто не противоречит. Это три клетки 2 1, 1 2, 2 2. Но в клетке 2 3 цифры 2,4,7, 8, 9 стоять не могут, так как они присутствуют в третьей строке или во втором столбце. Исходя из этого мы с полным правом ставим цифру пять на это клетку.

Голая пара

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

И так, давайте разберёмся. Посмотрите на рисунок 3. Здесь мы обычным способом проставляем мелким шрифтом все возможные варианты. И подробно рассмотрим верхний средний малый квадрат. Здесь в клетках 4 1, 5 1, 6 1 у нас получился ряд одинаковых цифр - 1, 5, 7. Это голая тройка в истинном виде! Что это нам даёт? А то, что только в этих клетках будут расположены эти три цифры 1, 5, 7. Таким образом мы можем в среднем верхнем квадрате на второй и третьей горизонтали исключить эти цифры. Так же в клетке 1 1 мы исключим семёрку и сразу же ставим четыре. Так как других кандидатов нет. А в клетке 8 1 мы исключим единицу, насчёт четвёрки и шестёрки следует подумать дальше. Но это уже иная история.

Следует сказать, что выше рассмотрен только частный случай голой тройки. На самом деле комбинаций цифр может быть множество

  • // три числа в трех ячейках.
  • // любые комбинации.
  • // любые комбинации.

Скрытая пара

Этот способ решения судоку позволит сократить количество кандидатов, и даст жизнь другим стратегиям. Посмотрите на рисунок 4. Средний верхний квадрат как обычно заполнен кандидатами. Цифры записаны мелким шрифтом. Зелёным цветом выделены две клетки - 4 1 и 7 1. Чем они нам примечательны? Только в этих двух клетках имеются кандидаты 4 и 9. Это и есть наша скрытая пара. По большому счёту она такая же пара, как и в пункте третьем. Только в клетках имеются и другие кандидаты. Вот этих других можно смело вычеркнуть с этих клеток.

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

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

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".

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

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

Статьи по теме: