我是 prolog 的新手,我正在尝试解决这个难题。我在 youtube 上做了一些关于 prolog 基础的教程,但我需要一些帮助来解决下面的难题。
两周前,四名爱好者在他们附近的天空中看到了物体。这四个人都在不同的日子报告了他或她的目击事件。联邦调查局来了,能够给每个人不同的解释,说明他或她“真正”看到了什么。你能确定每个人在哪一天(周二到周五)看到这个物体,以及它原来是那个物体吗?
- K 先生在本周早些时候的某个时间比看到气球的那个人发现了他,但在本周晚些时候的某个时间,比发现风筝的那个人(不是 G 女士)发现了他的踪迹。
- 星期五的目击事件是由 Barn 女士或看到飞机的人(或两者兼有)造成的。
- 尼克先生周二没有出现。
- K 先生不是那个对象原来是电线杆的人。
我已经正确设置了我的规则,但我似乎无法理解逻辑。我正在寻找指导而不是直接答案。在最右边,我列出了我试图回答的每个问题的编号
enthu(mr_k).
enthu(ms_barn).
enthu(ms_g).
enthu(mr_nik).
object(ballon).
object(kite).
object(plane).
object(tele_pole).
day(tuesday).
day(wednesday).
day(thursday).
day(friday).
sight(X,ballon).
sighting(mr_k):- 1
day(X),
sight(X,Y),
didntc_kite(ms_g).
friday_sight:- enthu(ms_barn); 2
saw(X,plane);
both(ms_barn,X).
nosight_tuesday(mr_nik,X). 3
no_telepole(mr_k,Y). 4