Pull to refresh
78
0
Сергей Дымченко @kit

Программист

Send message
Я в 2009 году писал статью на Хабр как раз про это — Учет затраченного времени с Emacs и org-mode. И ничего особо не устарело за 5 с лишним лет…
А Visual Prolog сильно отличается от поддерживающих ISO-стандарт реализаций. Есть даже мнение, что Visual Prolog это и не Пролог вовсе.
SWI-Prolog более популярный и имеет больше не связанных с логикой фич типа веб-разработки и т.п. В ECLiPSe лучше constraint programming. В B-Prolog есть tabling. Я постоянно пользуюсь этими тремя реализациями (SWI-Prolog в основном для ответов на StackOverflow).

Редактор — Emacs.
Для ECLiPSe и B-Prolog можно скачать бинарники для основных операционных систем, но запустить онлайн вроде негде.
Greater Than Sudoku — это не обычное Sudoku, а совсем другая головоломка.

Да и для решения обычного 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/
Например, в org-mode меню — очень полезная штука. Очень много разных функций, и клавиатурные комбинации к ним подписаны прямо возле пунктов меню — помогает выучить, если что-то часто используешь.

Отлючение меню удобно не для всех, и это явно не для новичков.
Отключать меню и тулбары для новичков — очень странное решение.
Не забывайте дарить секретарям подарки на праздники.

Да пишите не стесняясь: «Давайте секретарям взятки».
Для больших размеров доски нужно использовать Warnsdorff's rule: ходить в клетку, из которой можно сделать наименьшее число ходов. Работает за линию от числа клеток.

Вот я недавно решал на Прологе (B-Prolog): stackoverflow.com/questions/21066294/knights-tour-efficient-solution/21069014#21069014
«Пишу код, максимально соответствующий требованиям заказчика.»
После прочтения статьи и комментариев автора сложилось впечатления, что просто контора и ее руководство — муда не очень хорошие.
«Как работодатель ещё смотрю на семейное положение, к сожалению, это тоже для некоторых людей играет важную роль.» — чего-чего?

Вообще, ваш комментарий я понял так: если молодой и не семейный, можно платить мало и заставлять работать сверхурочно.
Придерусь к «Программа должна отбросить все составные (то есть не простые)».
Единицу надо отбрасывать?
Есть очень хорошая лекция А. Степанова (автора C++ STL) про алгоритм Эвклида: video.yandex.ru/users/ya-events/view/129#

Так там он описывает, как к нему на одну из предыдущих лекций пришел Дональд Кнут и сказал в стиле «Но ведь ответ -5 — неправильный. По определению НОД — наибольший общий делитель.» На что Степанов ответил: «Зависит от определения». В лекции по ссылке подробно описано и объяснено.
«Не надо искать умысел, где всё можно объяснить глупостью».

Сказали какому-то не очень квалифицированному работнику, что нужна эта структура в виде XML, и, мол, вот тебе файл со структурой.

— Хмм, че за XML такой. А, вот, «Сохранить как XML-документ». Готово.
Вроде «Think outside the box» тоже правильно:

think out of the box
to think about something, or how to do something, in a way that is new, different or shows imagination
oald8.oxfordlearnersdictionaries.com/dictionary/think
Ага, упустил, что ввод нужен.
А программа из этого топика рабочая?
У меня не успевает выполниться ни в моем brainfuck.progopedia.ru/, ни в ideone.com/
То ли зацикливается, то ли уж очень медленно работает.
1
23 ...

Information

Rating
Does not participate
Location
Bellevue, Washington, США
Date of birth
Registered
Activity