问题标签 [clpfd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prolog - Prolog:随机标记
我有一个使用约束用 Sicstus Prolog 编写的程序。我的目标是使用 labeling/2 和其他一些方法来获得我的变量的随机实例化。
例子:
如果我使用
获得的第一个结果将是 X = Y = Z = 0。您认为返回 X、Y 和 Z 的随机值集的最佳方法是什么?
prolog - 在 Prolog 中将 peano 数 s(N) 转换为整数
我在教程中遇到了逻辑数的自然数评估,这让我有些头疼:
该规则大致说明:如果N
它0
是自然的,如果不是,我们尝试将s/1
返回的内容递归地发送到规则,直到内容为0
,那么它是一个自然数,如果不是那么它不是。
所以我测试了上面的逻辑实现,心想,如果我想表示s(0)
as1
和s(s(0))
as ,这很有效2
,但我希望能够转换s(0)
为1
。
我想到了基本规则:
所以这是我的问题:如何将 s(0) 转换为 1 并将 s(s(0)) 转换为 2?
已回复
编辑:我修改了实现中的基本规则,我接受的答案指向我:
所以我现在可以随心所欲地使用它了,谢谢大家!
prolog - 初学者 - 添加 3 和 5 的倍数
我试图找到低于 1000 的所有 3 和 5 的正倍数之和。在添加应该从 5 的倍数之和中删除 3 的倍数的部分后,gprolog 将继续为询问?- sigma(1000,N).
问题显然在于 sigma5,但我不能完全发现它:
我的代码有什么问题?
prolog - 如何在prolog中进行算术表达式评估?
我正在尝试解决 prolog 中的算术表达式(实现 - eclipse prolog)。要求解的算术表达式是这样的:
X 是要计算的值,所有其他 (A,B,C,D,E) 都是数字。
例如:5 * (3 + 2*X) + 2*X = 39,在计算时应将 X 赋值为 2。
将输入 Prolog 的查询(目标)将采用以下形式:
“结果”和“X”的值应该绑定(分配)在一起。我该如何编写序言程序来做到这一点..?
谢谢你。
prolog - 当目标/查询中的变量数量变化时如何解决 - Prolog Constrain Solver
这是使用 prolog 约束求解机制的经典 SENDMORY 密码算术问题解决方案的片段-
现在,要执行此操作,我将发送如下目标/查询:
这会给我返回数字的可能解决方案。
现在,我的问题是,我不想以这种方式对变量(如 S、E、N、...)进行“硬编码”,但目标/查询会给出变量的数量。例如,如果我通过的查询类似于:
然后,它应该只计算 SENDM 的值,并假设其他变量不适用,因此将 0 分配给这些变量,然后继续计算。下次我查询时,我可能会在查询中传递不同数量的变量。例如:
并且程序应该同样计算。
我想要实现的是针对上述场景的更通用的问题解决方案。对此的任何指示都非常感谢。我对 prolog 很陌生,并且正在使用 ECLIPSE 约束求解器。谢谢你。
list - 将整数列表拆分为正整数列表和负整数列表
我一直在尝试在 Prolog 中创建一个谓词,它将整数列表拆分为正整数列表和负整数列表。
具有预期结果的示例查询:
这是我到目前为止得到的代码:
我似乎无法弄清楚我做错了什么。
prolog - 在 SWI-Prolog 结果中生成动态大小排列并带有 ERROR: Out of global stack
我正在尝试使用以下代码生成多个排列:
它返回了我所有的结果,但最终崩溃了ERROR: Out of global stack
list - 简单的序言程序。出现错误:>/2:参数没有充分实例化
我做了一个 Prolog 谓词posAt(List1,P,List2)
来测试位置 和 的元素P
是否List1
相等List2
:
测试时:
我期望输出,X = 2
但我收到以下错误:
ERROR: >/2: Arguments are not sufficiently instantiated
为什么我会收到此错误?
prolog - 在 Prolog 中解决逻辑难题(Kuromasu,黑细胞在哪里)
我在解决难题时遇到了一些问题。我还没有在任何地方找到这个难题的解决方案,但我尝试在 Prolog 中编写它,但我认为我的解决方案不会很快(我会生成每个解决方案,如果它们不可能或不正确,则将其删除)。这是我的问题:(我找到了那个拼图的名字,这里是那个拼图所有规则的链接:http ://en.wikipedia.org/wiki/Kuromasu )。现在我有一个不同的问题,哪种方法在 Prolog 中很容易编写并且可以很快地解决它。我想过将我的字段列表转换为无向图,或者可能有另一种方法可以垂直搜索我的列表(头接尾)?
在:
结果:
matrix - prolog中的矩阵乘法
我找到了一个乘以矩阵的代码。
如果我输入:mult([[1,2],[3,4]],[[5,6],[7,8]],X).
那么我得到 X = [[19, 22], [43, 50]].
但是我怎么能得到一个X = [[1*5+2*7, 1*6+2*8], [3*5+4*7, 3*6+4*8]] .
PS我是序言的新手。谢谢!