Программа для решения судоку онлайн


Excel помогает решить судоку - Книги Exel - Excel - Каталог файлов

1.       Заполняем ячейки.

2.       При нажатии на «Шаг» программа заполнит примечания клеток и раскрасит клетки с однозначным решением на этом шаге.

Если выставить флажки  программа расставит цифры и вообще может решить судоку за несколько шагов.

Лист1:

Private Sub CheckBox3_Click()

'для решения судоку с автоматическим

'продолжением шагов и заполнения

'устанавливаются флажки

If CheckBox3.Value = True Then

    CheckBox1.Value = True

    CheckBox2.Value = True

Else

End If

End Sub

 

Private Sub CommandButton1_Click()

If CheckBox3.Value = True Then

    CheckBox1.Value = True

    CheckBox2.Value = True

Else

End If

    Call Шаг

End Sub

 

Module1:

Public текст As String * 9

 

Public Sub Шаг()

заполнено = 0 'для определения окончания заполнения

авто_шаг = 0 'для выхода из цикла, если за 10 шагов судоку не заполнено

While заполнено < 81

    заполнено = 0

    авто_шаг = авто_шаг + 1

    For s = 2 To 10 '

        For k = 2 To 10 '

           Cells(s, k).Activate

            Call Не_выдеять '

            If Cells(s, k) >= 1 Then

               текст = "_________" '

               заполнено = заполнено + 1

            Else

               текст = "123456789" '

               Call В_строке(s) 'замена цифры на "_" если такая есть в строке

               Call В_колонке(k) 'замена цифры на "_" если такая есть в колонке

               Call В_квадрате(s, k) 'замена цифры на "_" если такая есть в блоке 3х3

               Call Единственная(s, k) 'если для клетки это единственный вариант - заполнить

            End If

            Call Примечание(s, k) 'изменение текста примечания

        Next k

    Next s

    Call Место 'этой цифры нет в вариантах других клеток строка, колонка, квадрат)

    If Sheets(1).CheckBox3.Value = False Then

        заполнено = 81 ' для предотвращения АвтоШага

    Else

    End If

    If авто_шаг > 10 Then

        заполнено = 81 ' для предотвращения зацикливания

    Else

    End If

Wend

End Sub

 

Public Sub Примечание(строка, колонка)

If текст = "_________" Then

    'удаление примечания

    Cells(строка, колонка).Activate

    Selection.ClearComments

Else

    If Cells(строка, колонка).Comment Is Nothing Then

        'создание примечания и запись текста

        Cells(строка, колонка).AddComment

        Cells(строка, колонка).Comment.Visible = False

        Cells(строка, колонка).Comment.Text Text:=текст

        'размеры

        Cells(строка, колонка).Comment.Shape.ScaleWidth 0.5, msoFalse, msoScaleFromTopLeft

        Cells(строка, колонка).Comment.Shape.ScaleHeight 0.2, msoFalse, msoScaleFromTopLeft

    Else 'изменение текста примечания

        Cells(строка, колонка).Comment.Text Text:=текст

    End If

End If

End Sub

 

Public Sub В_строке(строка)

For k = 2 To 10

    If Cells(строка, k) >= 1 Then

    'по цифре в клетке опредеяем место символа в примечании для замены

        Mid(текст, Cells(строка, k), 1) = "_"

    Else

    End If

Next k

End Sub

 

Public Sub В_колонке(колонка)

For s = 2 To 10

    If Cells(s, колонка) >= 1 Then

    'по цифре в клетке опредеяем место символа в примечании для замены

        Mid(текст, Cells(s, колонка), 1) = "_"

    Else

    End If

Next s

End Sub

 

Public Sub В_квадрате(строка, колонка)

строка_0 = строка - (строка + 1) Mod 3

колонка_0 = колонка - (колонка + 1) Mod 3

For s = строка_0 To строка_0 + 2

    For k = колонка_0 To колонка_0 + 2

        If Cells(s, k) >= 1 Then

        'по цифре в клетке опредеяем место символа в примечании для замены

            Mid(текст, Cells(s, k), 1) = "_"

        Else

        End If

        Next k

    Next s

End Sub

 

Public Sub Единственная(s, k)

цифр = 0 'для посчета количества цифр в примечании

For i = 1 To 9

    If Mid(текст, i, 1) <> "_" Then

    t = i

       цифр = цифр + 1

    End If

Next i

If цифр = 1 Then

    If Sheets(1).CheckBox1.Value = True Then

        Cells(s, k).Value = t

    Else

    End If

    Call Выделить(5296274) 'зелёный

End If

End Sub

 

Public Sub Место()

For s = 2 To 10

    For k = 2 To 10

        If Cells(s, k).Comment Is Nothing Then

        Else

        Cells(s, k).Activate

            If Selection.Interior.Color = 5296274 Then

           

            Else

                Одна_из = Cells(s, k).Comment.Text

                For цифра = 1 To 9

                    Call Одна_в_строке(s, k, Mid(Одна_из, цифра, 1), цифра)

                    Call Одна_в_колонке(s, k, Mid(Одна_из, цифра, 1), цифра)

                    Call Одна_в_квадрате(s, k, Mid(Одна_из, цифра, 1), цифра)

                Next цифра

            End If

        End If

    Next k

Next s

End Sub

 

Public Sub Выделить(Color_)

    With Selection.Interior

        .Pattern = xlSolid

        .PatternColorIndex = xlAutomatic

        .Color = Color_ '65535 или 5296274

        .TintAndShade = 0

        .PatternTintAndShade = 0

    End With

End Sub

 

Public Sub Не_выдеять()

    With Selection.Interior

        .Pattern = xlNone

        .TintAndShade = 0

        .PatternTintAndShade = 0

    End With

End Sub

 

Public Sub Одна_в_строке(s, k, символ, цифра)

    If символ = "_" Then

        Exit Sub

    Else

        куча = 0

        For k1 = 2 To 10

       

            If Cells(s, k1).Comment Is Nothing Then

            Else

                i = InStr(Cells(s, k1).Comment.Text, символ)

                If i > 0 Then

                    куча = куча + 1

                    Else

                 i = i

                End If

            End If

        Next k1

        If куча = 1 Then

            Cells(s, k).Activate

            If Sheets(1).CheckBox2.Value = True Then

                Cells(s, k) = цифра

            Else

            End If

            Call Выделить(65535) 'желтый

            куча = 0

        End If

    End If

End Sub

 

Public Sub Одна_в_колонке(s, k, символ, цифра)

    If символ = "_" Then

        Exit Sub

    Else

        куча = 0

        For s1 = 2 To 10

            If Cells(s1, k).Comment Is Nothing Then

            Else

                If InStr(символ, Cells(s1, k).Comment.Text) Then

                    куча = куча + 1

                End If

            End If

        Next s1

        If куча = 1 Then

            Cells(s, k).Activate

            If Sheets(1).CheckBox2.Value = True Then

                Cells(s, k) = цифра

            Else

            End If

            Call Выделить(65535) 'желтый

        End If

    End If

End Sub

 

Public Sub Одна_в_квадрате(s, k, символ, цифра)

    If символ = "_" Then

        Exit Sub

    Else

        строка_0 = s - (s + 1) Mod 3

        колонка_0 = k - (k + 1) Mod 3

        куча = 0

        For s1 = строка_0 To строка_0 + 2

            For k1 = колонка_0 To колонка_0 + 2

                If Cells(s1, k1).Comment Is Nothing Then

                Else

                    If InStr(символ, Cells(s1, k1).Comment.Text) Then

                        куча = куча + 1

                    End If

                End If

            Next k1

        Next s1

        If куча = 1 Then

             Cells(s, k).Activate

            If Sheets(1).CheckBox2.Value = True Then

                Cells(s, k) = цифра

            Else

            End If

             Call Выделить(65535) 'желтый

        End If

    End If

End Sub

Удачи.

yuriy-smirnov.ucoz.com

КАК РЕШАТЬ СЛОЖНЫЕ СУДОКУ: Методы решения судоку

Значит, в этой ячейке обязательно будет «4». Заносим «4» в данную ячейку и вычеркиваем из других ячеек 2-го столбца и 5-ой строки. Существуют сотни алгоритмов и программ для решения судоку. Пара или Тройка в квадрате — если они расположены в одном столбце, то можно убрать все другие такие же значения из соответствующего столбца. Понятно, что правильные решения головоломки будут только в этих ячейках и только с этими значениями, в то время как все другие кандидаты из общего блока могут быть убраны.

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

Как решать судоку: способы, методы и стратегия

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

Методика решения головоломок судоку

При этом они принадлежат только трем столбцам: 3, 4 и 7-ому. Согласно методу «Рыба меч» из других ячеек этих столбцов кандидата «5» можно исключить (зеленые ячейки). В примере, приведенном ниже, так же применяется метод «Рыба меч», но уже для случая трех колонок.

Данный метод будет называться «Медуза». Тогда искомая цифра обязательно будет в одном из них. Стратегия метода «Цвета» заключается в том, чтобы просматривать эту взаимосвязь с использованием двух цветов, например, желтого и зеленого. Еще один пример на метод «Цвета». Для решения головоломки, не важно сложной или простой, изначально ищутся ячейки очевидные для заполнения. После просмотра квадратов на очевидные решения, переходим к столбцам и строкам.

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

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

Метод 3 из 4: Самурайский судоку

Скрытая тройка состоит из трех пар чисел, расположенных в одном блоке. Такие как , и. Вторая, в столбце 9. уникальны для ячеек B9, C9 и F9. Используя ту же логику, убираем кандидатов. Продолжим решать головоломку. Однако для тренировки мозга и прокручивания алгоритмов в голове будет полезно посидеть с ручкой и бумагой, решая судоку. В статье привел базовые алгоритмы решения. Читал статью с полным решением этой игры. В общем, если память меня не подводит, то в худшем случае 6 ходов — это минимум.

Программа решения судоку с объяснениями (онлайн)

Сначала пишем программу, которая умеет решать любую конфигурацию, и выдаёт варианты «нет решений/одно решение/много решений». Начинаем с пустого поля. У него, очевидно, много решений. Если у полученной карты решений нет — переходим к следующей цифре. Решение есть (одно или много) — отлично, пишем цифру в эту клетку. Проверяем, сколько решений. FYI: Минимальное количество подсказок для возможного единственного решения — 17. Причем количество решаемых уникальных задач с 17 подсказками (т.е исключая симметричные) равно 49.151.

1. За ссылку — спс. Но я ж спрашивал алгоритмы генерации, а не карты. Решение «в лоб» (вычеркиванием цифр по одной и попыткой решения) получится крайне времяемко. В итоге за небольшое время (несколько секунд в худшем случае) получается полная карта судоку.

С кандидатами решать интереснее и можно применять различные логические методы. Предыдущие два метода – это единственные методы, которые однозначно определяют содержимое ячейки. Тоже самое можно сформулировать для 3 и 4-х кандидатов, только участвует уже 3 и 4 ячейки, соответственно.

В 4-ой и 5-ой строках цифра «2» может быть только в двух ячейка желтого цвета, при чем эти ячейки находятся в одинаковых столбцах. Эта же логика применима и в случае трех колонок, где кандидат ограничивается тремя строками.

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

Также смотри:

  • Купить настоящий монастырский чай можно в таких странах как: Заказала монастырский чай от диабета. Сегодня основательно разберёмся, что такое монастырский чай и для чего он предназначен. Стоимость 1 упаковки монастырского чая зависит от страны. […]
  • Набережные Челны Уточним, что в Набережных Челнах не каждая семья может стать участником социальной ипотеке. Социальная ипотека в Набережных Челнах – это реальная возможность усовершенствовать свои условия […]
  • Глобальная карта и Укрепрайоны Вместо фишек, на глобальной карте теперь работают дивизии. Кроме всего, глобальная карта была объединена с режимом Укрепрайоны. Представляем вам совершенно новую Глобальную карту World of […]

kwakret.ru

Методы решения судоку / Хабрахабр

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

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

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»
«Голые тройки» — усложненный вариант «голых пар». Любая группа из трех ячеек в одном блоке содержащая в общем три кандидата является «голой тройкой». Когда такая группа нашлась, эти три кандидата могут быть убраны из других ячеек блока.

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

[abc] [abc] [abc] // три числа в трех ячейках. [abc] [abc] [ab] // любые комбинации. [abc] [ab] [ab] // любые комбинации. [ab] [aс] [bc] В этом примере все довольно очевидно. В пятом квадрате ячейки 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 Скрытые тройки
Мы можем развить скрытые пары до скрытых троек или даже скрытых четверок. Скрытая тройка состоит из трех пар чисел, расположенных в одном блоке. Такие как [a,b,c], [a,b,c] и[a,b,c]. Однако, как и в случае с «голыми тройками», в каждой из трех ячеек не обязательно должно быть по три числа. Сработают всего три числа в трех ячейках. Например [ab], [aс], [bc]. Скрытые тройки будут замаскированы другими кандидатами в ячейках, поэтому сначала надо убедиться, что тройка применима к конкретному блоку.

В этом сложном примере есть две скрытые тройки. Первая, отмеченная красным, в столбце А. Ячейка А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.

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

habrahabr.ru

Как решать "Судоку"

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

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

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

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

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

sudoku-solver.in.ua


Смотрите также