Наше задание - отображать временные рамки событий в Prolog. Наша база данных выглядит следующим образом:Как я могу аккуратно распечатать временную шкалу с событиями?
event(e1, 20).
event(e2, before(e1)).
event(e3, before(e2)).
event(e4, 15).
event(e5, before(5)).
event(e6, 30).
event(e7, before(e2)).
Наша идея заключается в том, чтобы определить 2 точки (0 и ноль) как фиксированные значения, и представляют собой временные рамки, как это:
0 5 15 20 30 nil
\ x x e4 e1 e6/
\ e5/
\ x e3 e2 /
\ x e7/
(К сожалению, я не не знаю, как работают вкладки, и я не могу опубликовать скриншот)
Наша идея - найти все возможные пути от 0 до нуля и попытаться увидеть, какие узлы могут быть объединены.
Путь будет выглядеть примерно так:
[
[0, e4, e1, e6, nil],
[0, e5, e4, e1, e6, nil],
[0, e3, e2, e1, e6, nil],
[0, e7, e2, e1, e6, nil]
]
Как мы можем найти событие в правильном порядке? Кажется, мы не можем продвигаться вперед от 0, потому что, чтобы найти первое событие, вы должны убедиться, что это до какого-то другого события или чего-то еще?
@Paul: [ "Домашнее задание тегов, как теги других так называемых 'мета', в настоящее время не рекомендуется,"] (HTTP: //meta.stackoverflow.com/q/10812), но, @Highi, пожалуйста (как всегда) следуйте [общим рекомендациям] (http://tinyurl.com/so-hints): укажите какие-либо специальные ограничения, покажите, вы пробовали до сих пор и спрашиваете, что конкретно вас путает. – 2010-11-10 17:02:32
39 вопросов были помечены домашней работой на прошлой неделе. Не все из меня :) Так обескуражен это может быть кто-то, но он также широко используется. Я (как и другие, мне кажется) все равно будет использовать его для вопросов, которые пахнут домашней работой, но не соглашайтесь на него в вопросе –
Прошу прощения, если я не объясню это, но да, это домашнее задание. Я не ожидаю, что кто-то просто «giv mah teh codez», но я на самом деле пытаюсь что-то узнать здесь. Я знаю, что мой вопрос был немного расплывчатым, поэтому я буду перефразировать его. – Highi