SWI-Prolog более популярный и имеет больше не связанных с логикой фич типа веб-разработки и т.п. В ECLiPSe лучше constraint programming. В B-Prolog есть tabling. Я постоянно пользуюсь этими тремя реализациями (SWI-Prolog в основном для ответов на StackOverflow).
Greater Than Sudoku — это не обычное Sudoku, а совсем другая головоломка.
Да и для решения обычного Sudoku, как учит нас Питер Норвиг norvig.com/sudoku.html, надо реализовать constraint propagation и поиск. Это не очень сложно в случае Sudoku, но в поддерживающих constraint logic programming системах уже реализовано и отлажено.
Для Забора с ходу не найду основанных на Прологе решений, но вроде бы задача идеально подходит для constraint logic programming. Попробую написать решение, как будет время.
Нужно понимать, что «классический» Пролог просто перебирает все варианты подряд поиском в глубину с возвратами. Тех же ферзей на большой доске не расставишь.
Современные системы, основанные на Прологе, гораздо умнее. Главное достижение — constraint logic programming, которое использует интересные алгоритмы для отсечения больших частей дерева поиска. Как пример использования — мое решение Greater Than Sudoku: sdymchenko.com/blog/2015/01/04/greater-than-sudoku-clp/
Еще есть такая интересная вещь, как tabling — вариант эффективной автоматической мемоизации логических программ, использование которого позволяет избегать «зацикливания» и декларативно реализовывать алгоритмы динамического программирования. Пример: sdymchenko.com/blog/2014/12/09/aaaaaa-bprolog/
Например, в org-mode меню — очень полезная штука. Очень много разных функций, и клавиатурные комбинации к ним подписаны прямо возле пунктов меню — помогает выучить, если что-то часто используешь.
Отлючение меню удобно не для всех, и это явно не для новичков.
Для больших размеров доски нужно использовать Warnsdorff's rule: ходить в клетку, из которой можно сделать наименьшее число ходов. Работает за линию от числа клеток.
Так там он описывает, как к нему на одну из предыдущих лекций пришел Дональд Кнут и сказал в стиле «Но ведь ответ -5 — неправильный. По определению НОД — наибольший общий делитель.» На что Степанов ответил: «Зависит от определения». В лекции по ссылке подробно описано и объяснено.
А программа из этого топика рабочая?
У меня не успевает выполниться ни в моем brainfuck.progopedia.ru/, ни в ideone.com/
То ли зацикливается, то ли уж очень медленно работает.
Редактор — Emacs.
Да и для решения обычного Sudoku, как учит нас Питер Норвиг norvig.com/sudoku.html, надо реализовать constraint propagation и поиск. Это не очень сложно в случае Sudoku, но в поддерживающих constraint logic programming системах уже реализовано и отлажено.
Для Какуро вот решения от Hakan Kjellerstrand: www.hakank.org/eclipse/kakuro.ecl (ECLiPSe) и www.hakank.org/bprolog/kakuro.pl (B-Prolog).
Для Забора с ходу не найду основанных на Прологе решений, но вроде бы задача идеально подходит для constraint logic programming. Попробую написать решение, как будет время.
Современные системы, основанные на Прологе, гораздо умнее. Главное достижение — constraint logic programming, которое использует интересные алгоритмы для отсечения больших частей дерева поиска. Как пример использования — мое решение Greater Than Sudoku: sdymchenko.com/blog/2015/01/04/greater-than-sudoku-clp/
Еще есть такая интересная вещь, как tabling — вариант эффективной автоматической мемоизации логических программ, использование которого позволяет избегать «зацикливания» и декларативно реализовывать алгоритмы динамического программирования. Пример: sdymchenko.com/blog/2014/12/09/aaaaaa-bprolog/
Отлючение меню удобно не для всех, и это явно не для новичков.
Да пишите не стесняясь: «Давайте секретарям взятки».
Вот я недавно решал на Прологе (B-Prolog): stackoverflow.com/questions/21066294/knights-tour-efficient-solution/21069014#21069014
мудане очень хорошие.Вообще, ваш комментарий я понял так: если молодой и не семейный, можно платить мало и заставлять работать сверхурочно.
Единицу надо отбрасывать?
Так там он описывает, как к нему на одну из предыдущих лекций пришел Дональд Кнут и сказал в стиле «Но ведь ответ -5 — неправильный. По определению НОД — наибольший общий делитель.» На что Степанов ответил: «Зависит от определения». В лекции по ссылке подробно описано и объяснено.
Сказали какому-то не очень квалифицированному работнику, что нужна эта структура в виде XML, и, мол, вот тебе файл со структурой.
— Хмм, че за XML такой. А, вот, «Сохранить как XML-документ». Готово.
oald8.oxfordlearnersdictionaries.com/dictionary/think
У меня не успевает выполниться ни в моем brainfuck.progopedia.ru/, ни в ideone.com/
То ли зацикливается, то ли уж очень медленно работает.