我需要使用prolog解决以下问题。
以上是所提供的事实。
1. The Greek ship leaves at six and carries coffee.
2. The Ship in the middle has a black chimney.
3. The English ship leaves at nine.
4. The French ship with blue chimney is to the left of a ship that carries coffee.
5. To the right of the ship carrying cocoa is a ship going to Marseille.
6. The Brazilian ship is heading for Manila.
7. Next to the ship carrying rice is a ship with a green chimney.
8. A ship going to Genoa leaves at five.
9. The Spanish ship leaves at seven and is to the right of the ship going to Marseille.
10. The ship with a red chimney goes to Hamburg.
11. Next to the ship leaving at seven is a ship with a white chimney.
12. The ship on the border carries corn.
13. The ship with a black chimney leaves at eight.
14. The ship carrying corn is anchored next to the ship carrying rice.
15. The ship to Hamburg leaves at six.
Which ship goes to Port Said? Which ship carries tea?
我在网上搜索,但我无法找到prolog的解决方案。
那么如何用prolog解决这个问题呢?
谢谢。
斑马之谜,又称爱因斯坦之谜,是一个需要通过程序来解决的逻辑谜题。
它有几个变体,都以你发布的形式。
剧透警告:以下链接包含谜题的序言解决方案
- 下面是使用
ic
(约束求解器)库的解决方案:https://gist.github.com/JuanitoFatas/2227711 - 在这里你可以找到一个纯粹的序言实现:爱因斯坦之谜序言
- 这里是另一个尝试在纯序言中解决它:http://baptiste-wicht.com/posts/2010/09/solve-einsteins-riddle-using-prolog.html