编写一个序幕程序来解决这个问题



我是新手的友善协助。亨特,劳拉,吉姆,莎莉和杰克在同一座建筑物中工作,并设有五个相邻的办公室。亨特在第五办公室不工作,劳拉在第一台办公室工作。吉姆在第一任或最后一个办公室工作,他不在杰克或劳拉附近的办公室里。莎莉(Sally)在某个办公室工作,高于劳拉(Laura)。谁在哪个办公室工作?

编写一个序幕程序来解决此问题。定义邻接是什么,然后是办公室是什么,然后创建一个布局(x),使您可以列入所有规则。每个人都被任命为没有打破任何规则的办公室。

在此答案中,我们使用clpfd。阅读有关CLPFD的教程以获取详细信息!

: -  use_module(库(clpfd))。拼图(P): -    puzzzle_vars(p,zs),   标签([],ZS)。Puzzzle_vars(P,ZS): -    P = [Hunter-Hunter,Jack-Jack,Jim-Jim,         劳拉·拉拉(Laura-Laura),萨利(Sally-Sally)],   ZS = [Hunter,Laura,Jim,Sally,Jack],   zs ins 1..5,   all_diverent(zs),   猎人# = 5,   劳拉# = 1,   吉姆# = 1,   吉姆# = 5,   ABS(Jim-Jack)# = 1,   ABS(Jim-Laura)# = 1,   莎莉#>劳拉。

谁在哪个办公室工作?让我们问prolog!

?- puzzle(P).
   P = [hunter-3, jack-1, jim-4, laura-2, sally-5]
;  false.

相关内容

  • 没有找到相关文章

最新更新