grid_on

Sudoku Clean

language Русский

Гайды / Принудительная цепь Нисио

Принудительная цепь Нисио

> Предварительное условие: [Chain Basics](learning://chains)

Advanced

Принудительная цепь Нисио

Предварительное условие: Chain Basics

Обзор

Цепь принуждения Нисио — это метод исключения доказательств и противоречий.

Когда кандидат выглядит «подозрительно», но убрать его прямым методом не получается, можно сделать так:

  1. выберите кандидата для тестирования (красный)
  2. предположим, что это правда
  3. распространять принудительную истину/ложь (синий = принудительная правда, желтый = принудительная ложь)
  4. если вы пришли к противоречию (например, в строке нет места для цифры)
    ⇒ предположение невозможно
    ⇒ исключить стартового кандидата

Прохождение

Nishio Forcing Chain (walkthrough)

На изображении выше красная цель исключения — кандидат 5 в r1c3.
Мы начнем доказательство противоречия с предположения, что r1c3 = 5 истинно.

Затем мы следуем цепочке принуждения:

  • синие кандидаты в этом предположении оказываются верными.
  • желтые кандидаты в этом предположении оказываются ложными

Вам не нужно сначала проверять каждый переход — сосредоточьтесь на противоречии:

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

Следовательно, предположение r1c3 = 5 не может быть верным, и кандидат 5 в r1c3 можно исключить.


Примеры

Вот еще два примера Нисио. Попробуйте следовать такому порядку просмотра: красное начало (предположим, что это правда) → распространение синего/жёлтого → противоречие → устранение красного.

Nishio example A

Nishio example B


Как обнаружить Нисио

Контрольный список в одну строку: если вы застряли, выберите ключевого кандидата и проверьте его от противного; если оно быстро вызывает противоречие, устраните его.

Практический контрольный список:

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