Создание ЭФФЕКТИВНОГО решателя судоку

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

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

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

Я хочу избежать математических алгоритмов, если бы вообще возможный - это было бы слишком легко и 100% не моя работа.

Если кто-то мог бы обеспечить пошаговый, эффективный мыслительный процесс для решения Судоку (ли человеком или компьютером), я буду самым счастливым :). Я ищу что-то, что это неопределенно (таким образом, это - проблема), но достаточно информативный (таким образом, я не полностью потерян) запустить меня.

Большое спасибо,

Justian Meyer

Править:

Смотря на мой код, я добрался до взглядов: что было бы некоторыми возможностями для хранения этих состояний решения (т.е. сетка Судоку). 2D Массивы и 3D Массивы приходят на ум. Который мог бы быть лучшим? 2D могло бы быть легче справиться от поверхности, но 3D Массивы обеспечат "поле" / число "клетки" также.

Править:

Nevermind. Я собираюсь идти с 3D массивом.

6
задан Justian Meyer 27 July 2010 в 15:38
поделиться