-1

任何人解决这个难题:

使用给出的线索找出每个人的名字、酒、主菜和价格。以下是此拼图中使用的所有类别和选项。

名字:琳达、尼克、罗宾、弗吉尼亚 葡萄酒:波尔多、基安蒂、梅洛、设拉子 主菜:炒牛肉、柑橘鸡肉、菲力牛排、红鲷鱼 价格:24.99 美元、25.99 美元、26.99 美元、27.99 美元

线索:

  1. 点红鲷鱼的餐厅没有波尔多。
  2. 琳达付的钱比拥有波尔多酒的人少。
  3. 喝波尔多酒的人和喝基安蒂酒的人都不是支付 26.99 美元的人。
  4. 点了炒牛肉的小餐馆点了基安蒂。
  5. 点了柑橘鸡的食客比点了基安蒂的食客少付了 1 美元。
  6. 点了菲力牛排的食客比点了设拉子的食客少付了钱。
  7. 弗吉尼亚要么是点了炒牛肉的食客,要么是点了红鲷鱼的食客。
  8. 喝梅洛的人比罗宾少付 1 美元。

资源:

逻辑拼图.org

4

1 回答 1

2

找出每个人的名字、酒、主菜和价格

所以我们将每个人表示为 4 元复合词,p(Name,Wine,Entree,Price)。好像也有四个。

然后我们只需写下我们被告知的内容:

wine_and_dine(People):-
  length(People,4),
  Ordered1 = p(_,W1,red_snapper,_),   
             member(Ordered1, People),
             % W1 \= bordeaux, but delay writing this down 
             %                 until it is defined some more
             % or use freeze/2 in SWI:
             freeze( W1, W1 \= bordeaux),
  Lynda2 = p(lynda,_,_,PL2), 
             Had2 = p(_,bordeaux,_,PB2),
             member(Lynda2, People),
             member(Had2, People),
             % PL2 < PB2,     % check this only when they are known; or
             freeze(PL2, freeze(PB2, PL2 < PB2)),
  .... etc.

请参考标签上的问答。

于 2014-12-21T16:32:01.030 回答