На днях наткнулся на одном из блогов на решение судоку, посредством SQL, вся красота данного решения в том, что не нужно писать прикладных обработчиков, результат находит сам SQL.
Единственное, что нужно сделать, это сформировать запрос, а затем передать его на сервер MySQL. Задание списка 9 × 9 :
- В таблице все возможные комбинации (362880=9!)
- Запросы:
- получение всех возможных комбинаций;
- установка известных значений;
- получение результата запросом;
Сам запрос, по сути, сообщает правила судоку, и далее получаем результат
. Решение достаточно тривиальное, но как прецедент интересное. Теперь, что нужно для решения данной головоломки:
- дамп, содержащий все возможные комбинации для судоку 9х9, таблица позиций;
- задача (:
![]()
- запрос для получения результата, запрос;
получим результат:

решение не занимает более 1с, вот мы и нашли еще одно применение базам данных
источники:
http://dev.juokaz.com/mysql/solving-soduku-with-only-mysql
http://lamneth.wordpress.com/2007/07/26/can-you-solve-a-sudoku-puzzle-faster-than-this/

No comments yet
Следить за комментариями к этой записи