Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Как решают судоку

99 процентов судоку уровня Экспертный реашаются простыми способами - уже не уверен

Правила судоку

  • Каждая строка, столбец и блок 3×3 должны содержать цифры 1–9 без повторений.
  • Каждая клетка должна отличаться от всех своих «соседей» (peers).

Решение

  1. Инициализация 1.1. Проверяем условие задачи на ошибки 1.2. Создаем массив с 1-9 значениями 1.3. Если клетка фиксирована, то удаляем кандидатов у соседей - eliminate
  2. Распространение ограничений 2.2. Если кандидат один, то - assign+eliminate 2.3. Если значение в рамках соседей единственное, то - assign+eliminate
  3. Глубокий поиск

Функции

  1. Init() - Фиксация исходных значений и установка ограничений
  2. Assign() + eliminate() - Инструмент фиксации и установки ограничений
  3. Check.Singles() - Обнаружение одиночных значений ранее не зафиксированных
  4. Check.HiddenSingles() - Обнаружение скрытых одиночек
  5. Check.Voids() - Определение решения задачи
  6. ValidateTask() - Проверка исходной задачи

Алгоритм

  1. Инициализация 0.
  2. Обнаружение одиночек. ЕСЛИ были зафиксированы значения, ТО возвращаем true, иначе false
  3. ЕСЛИ 2=true И 4=true, ТО 3. ЕСЛИ 2=true И 4=false, ТО КОНЕЦ. ЕСЛИ 2=false И 4=true, ТО 3. ЕСЛИ 2=false И 4=false, !!!ТО КОНЕЦ.
  4. Обнаружение скрытых одиночек. ЕСЛИ были зафиксированы значения, ТО возвращаем true, иначе false
  5. ЕСЛИ 3=true и 4=true, ТО 2. ЕСЛИ 3=true и 4=false, ТО КОНЕЦ. ЕСЛИ 3=false и 4=true, ТО DeepSearch. ЕСЛИ 3=false и 4=false, !!!ТО КОНЕЦ.

Известные методы

Naked Singles - выполнено Hidden Singles - выполнено Naked Pair Hidden Pair Pointing Pair Box-Line Reduction X-Wing Swordfish

About

A simple sudoku solver using "Naked Singles" and "Hidden Singles" methods, deep search.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages