独角兽是星期几吗?

任务:已知独角兽在星期一,星期二和星期三躺着,并在一周的其他所有日子讲真话。他可以说:“昨天我撒了谎。明天以后,我将连续躺两天。确定对话的日期。

我草绘了代码,但我不知道怎么说独角兽连续两天说谎,请更正代码,在此先感谢。

yesterday(mon, sun).
yesterday(tue, mon).
yesterday(wed, tue).
yesterday(thu, wed).
yesterday(fri, thu).
yesterday(sat, fri).
yesterday(sun, sat).

lies([mon, tue, wed]).

tomorrow(Day, Tomorrow) :-
    yesterday(Tomorrow, Day).

unicornLies1(Day) :- 
    lies(Days),
    member(Day, Days).

unicornLies2(Day) :- 
    tomorrow(Day, Tomorrow),
    unicornLies1(Day),
    unicornLies1(Tomorrow).

sol:- unicornLies1(Day), unicornLies2(Day), write(Day).
苏克哈卡

这是一个简单的逻辑,它实现next_day并反过来用于获取前后的日期


day(X) :- member(X,[m,t,w,thu,f,sat,sun]).

lie(m).
lie(t).
lie(w).

truth(X) :- \+lie(X).

next(A, B, Ls) :- append(_, [A,B|_], Ls).

next_day(sun,m).
next_day(X,Y) :- next(X,Y,[m,t,w,thu,f,sat,sun]).

solve(X) :-
    day(X),
    (truth(X),next_day(Y,X),lie(Y),next_day(X,T),next_day(T,U),next_day(U,V),lie(U),lie(V));
    (lie(X),next_day(Y,X),truth(Y),next_day(X,T),next_day(T,U),next_day(U,V),(truth(U);truth(V))).

运行时会给出一个结果-星期一

?- solve(X).
X = m ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

独角兽瓶

来自分类Dev

我可以在Firefox中禁用独角兽吗?

来自分类Dev

更改独角兽的端口

来自分类Dev

独角兽插座消失

来自分类Dev

独角兽开始冻结

来自分类Dev

Rails中的独角兽和撬

来自分类Dev

捆绑更新独角兽错误

来自分类Dev

独角兽下有大量线程

来自分类Dev

独角兽不重装工人

来自分类Dev

独角兽不采摘stderr

来自分类Dev

如何使独角兽在Ubuntu中运行?

来自分类Dev

独角兽和烧瓶的蓝图

来自分类Dev

独角兽失败从配置开始

来自分类Dev

如何使独角兽在Ubuntu中运行?

来自分类Dev

独角兽不读取ENV变量

来自分类Dev

独角兽大师无法启动

来自分类Dev

独角兽不重装工人

来自分类Dev

我对独角兽,Sidekiq和数据库池大小的理解正确吗?

来自分类Dev

我对独角兽,Sidekiq和数据库池大小的理解正确吗?

来自分类Dev

与独角兽的路轨。应该在gemfile中保持稀疏吗?

来自分类Dev

如何重启我的独角兽服务器?

来自分类Dev

独角兽被困在引导工人,pid:9293

来自分类Dev

在Rails 4 +独角兽+工头中禁用资产记录

来自分类Dev

Heroku中的独角兽?为什么不在开发中?

来自分类Dev

为什么gitlab 6切换回独角兽?

来自分类Dev

金字塔/独角兽中的替代请求超时

来自分类Dev

独角兽自行重启-没有记忆-被杀死

来自分类Dev

如何手动重启独角兽

来自分类Dev

独角兽和Nginx的奇怪问题导致502错误