好家伙我还是新手,我还是不知道如何解决这个难题与Prolog的,我做了一些尝试,似乎是错误的和不完整的,这是一个问题:解决简单的音乐家逻辑谜题在序言
在一场音乐会上,五名学生(约翰,凯特,拉里,玛丽和尼克)共演出了五首音乐作品。两首巴赫,两首莫扎特和一首维瓦尔第。有三名小提琴手和两名钢琴家。每个学生只做一件作品,只玩一种乐器。找同学,他们各自的仪器和作曲家的顺序,符合下列条件:
作曲家不连续播放。维瓦尔第最后一次出场,莫扎特首先出场。
有一首钢琴作品在两首小提琴作品之间演奏,两首小提琴作品在第一首和最后一首钢琴作品之间演奏。
莫扎特没有钢琴作品。
凯特打了第三。
约翰演奏了一首莫扎特的作品,紧随其后的是演奏钢琴的尼克。
玛丽没有扮演维瓦尔第。
这里我half-code
:
List=[
musicians(_,_,_,_),
musicians(_,_,_,_),
musicians(_,_,_,_),
musicians(_,_,_,_),
musicians(_,_,_,_)],
member(musicians(1,_,_,mozart),List) ,
member(musicians(5,_,_,vivaldi),List) ,
member(musicians(_,_,P1,mozart),List) ,P1\==piano,
member(musicians(3,kate,_,_),List) ,
member(musicians(_,john,_,mozart),List) ,
member(musicians(N1,nick,piano,_),List) ,N1==john_num+1,
member(musicians(_,mary,_,C1),List) ,C1\==vivaldi,
- 我不知道怎么写的#2语句关于钢琴和小提琴。
- 我不知道该怎么写缺口后声明约翰
N1==john_num+1,
- 全息我只是坚持用解决Prolog的这个问题,甚至尽管我已经知道答案,但在序言全新的,仍然困惑阅读后教程。