七周七语言:Prolog Day 1

本文介绍了Prolog语言在解决地图着色问题中的应用,展示了如何通过描述事实来解决这一问题。此外,还展示了构建简单知识库的过程,包括作者和书籍的关系,并提供了查询作者所著书籍的示例。最后,提到了音乐家和乐器的知识库,以及如何查询使用吉他乐器的音乐家。
摘要由CSDN通过智能技术生成

第一天


看到‘地图着色’那个例子的时候觉得prolog这下牛逼了……的确,只要通过描述的事实,就能将其填色 :)

这里介绍一下怎么用prolog来解地图填色问题:


在prolog中,只需要描述颜色的种类、以及各个区域的接壤问题即可。
different(red, green).
different(red, blue).
different(green, red).
different(green, blue).
different(blue, red).
different(blue, green).

coloring(Alabama, Mississippi, Georgia, Tennessee, Florida) :-
  different(Mississippi, Tennessee),
  different(Mississippi, Alabama),
  different(Alabama, Tennessee),
  different(Alabama, Mississippi),
  different(Alabama, Georgia),
  different(Alabama, Florida),
  different(Georgia, Florida),
  different(Georgia, Tennessee).

| -? coloring(Alabama, Mississippi, Georgia, Tennessee, Florida).

Alabama = blue
Florida = green
Georgia = red
Mississippi = red
Tennessee = green ?

再输入a就可以获得另外几种着色的组合。如果换一种地图导致三种颜色无法获得填色结果,prolog会告诉你:no. 就是这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值