На днях наткнулся на одном из блогов на решение судоку, посредством SQL, вся красота данного решения в том, что не нужно писать прикладных обработчиков, результат находит сам SQL.

Единственное, что нужно сделать, это сформировать запрос, а затем передать его на сервер MySQL. Задание списка 9 × 9 :

  1. В таблице все возможные комбинации (362880=9!)
  2. Запросы:

  • получение всех возможных комбинаций;
  • установка известных значений;
  • получение результата запросом;

Сам запрос, по сути, сообщает правила судоку, и далее получаем результат :) . Решение достаточно тривиальное, но как прецедент интересное. Теперь, что нужно для решения данной головоломки:

  • дамп, содержащий все возможные комбинации для судоку 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/