如何写好谓词(not Between)
我编写代码如下 testb :- X::1..10, V1 = 3, V2 = 6, testbb(X,V1,V2), writeln(X). testbb(X,V1,V2) :- ( count(I,V1,V2),param(X,V1,V2) do X#\=I )…
Prolog 中的迷你数独求解器中途停止
我正在学习《七周七种语言》,我只是想从书中找到一个例子。它解决迷你数独网格 (4x4)。 作者使用的是 gprolog,但我使用的是 swi-prolog(无论出于何…
SWI-Prolog 中的约束编程库或语法问题
我只是想弄清楚 SWI-Prolog 中的约束编程,请查看本教程: http:// /en.wikibooks.org/wiki/Prolog/Constraint_Logic_Programming 然而,我似乎在第一…
序言,测试(X,Y,Z):- Y 是 X + Z
当我只知道X时,如何在序言中得到Y和Z? 例如: test(X, Y, Z) :- X is Y + Z. 但是错误: ?- test(2, Y, Z). ERROR: is/2: Arguments are not suffic…
在 prolog 中将浮点数转换为整数
如何在prolog中将浮点数转换为整数? 我试过: ?- integer(truncate(sqrt(9))). false. ?- integer(round(sqrt(9))). false. …
序言;尝试让斐波那契更有效?
这种逻辑编程确实让我的命令式编程技能大为提高。这是家庭作业,所以请不要给我答案。这就是我所拥有的: fibo(N,1) :- N < 2, !. fibo(N,R) :- N1 …
Prolog 中的简单 nth1 谓词
在 SWI Prolog 中,有一个谓词可以查找名为 nth1 的列表中的第 n 个项目。我想实现我自己的谓词版本,但如果您查看清单(nth1)代码,SWI 的版本会非…
Prolog 初学者:如何为谓词中的每个变量设置唯一值
我有一个序言谓词: Add( [A|B] , Answer ) :- ... ~ Add everything in the list to come up with answer ... 我现在想实现 AddUnique ,当我给它两…
Prolog 初学者:如何与算术比较运算符统一或如何将 set var 获取到值的范围
我是 Prolog 新手。我需要编写一个整数加法器,它将 0-9 之间的数字与其他数字 0-9 相加,并产生一个解决方案 0-18。这就是我想做的: % pseudo code …
Prolog 中的可逆数值计算
在阅读 SICP 时,我遇到了逻辑编程第 4.4 章。然后我开始研究 Prolog 编程语言,并尝试理解 Prolog 中的一些简单作业。我发现Prolog在数值计算方面似…
使用 SICStus Prolog 推广斐波那契数列
我正在尝试寻找广义斐波那契序列(GFS)查询的解决方案。问题是:是否有第 12 个数字为 885 的 GFS?最初的 2 个数字可能限制在 1 到 10 之间。 我已…
Prolog:识别 n >= 1 的 a^nb^(n+1) 语言
我知道我需要自己搞清楚作业,但看到班上没有人能搞清楚,我需要一些帮助。 编写一个 Prolog 程序,使得 p(X) 如果 X 是由 n 组成的列表,则为 true …