【发布时间】:2019-11-22 10:37:16
【问题描述】:
我正在为练习作业编写一个 prolog 程序,我想在其中编写一个谓词 sum(A,B,C),其中 A、B 和 C 是整数列表,如果满足以下条件,prolog 将返回 true:
连接列表 BC 中的元素(即列表 B 和 C “粘合在一起”)形成 A 中元素的排列; B中所有整数之和等于C中所有整数之和。
如果任何对 prolog 有更多经验的人可以就如何完成这项工作给我一些建议,那就太好了。我真的不知道从哪里开始。我想给出一个像 sum([1,2,3],[3,2,1],[2,3,1]) 这样的输入。 prolog 将返回 true。但是,以 sum([1,2,3],[4,5,6],[6,3,2]) 为例,这将返回 false,因为在此示例中,列表 2 和 3 没有不同list1的个数的排序(permutation),list 3中的整数之和不等于list 2中的整数之和。
对代码有什么想法或建议吗?
【问题讨论】:
标签: list prolog integer comparison