好傢伙我還是新手,我還是不知道如何解決這個難題與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的這個問題,甚至儘管我已經知道答案,但在序言全新的,仍然困惑閱讀後教程。