8得票3回答
板子组装及其约束条件

我正在做这个问题,但我完全不了解Prolog,也不知道该怎么做。 一个电子板的九个部分具有相同的尺寸和形状,并且每个部分的每个边缘都标有一个字母和加号或减号。如下图所示,将这些部分组装成一个完整的板,使得公共边缘具有相同的字母和相反的符号。编写一个Prolog计划程序,这样程序将“组装”作为...

13得票4回答
Prolog中的阶乘反函数

有人能帮我找到在Prolog中获取逆阶乘的方法吗... 例如inverse_factorial(6,X) ===> X = 3。 我已经花了很长时间在这上面了。 我现在已经有了阶乘,但我必须使它是可逆的。请帮帮我。

7得票6回答
在Prolog中更快实现口算题

我已经在Prolog中制作了一个可行的文字算术求解器,但速度太慢了。仅运行简单的表达式 S E N D + M O R E = M O N E Y 就需要8分钟。有人能帮我加快它的运行速度吗? /* verbalArithmetic(List,Word1,Word2,Word3) where...

9得票1回答
CLP(FD)-ying 递归求解 Fibonacci Lukas 数列是否可行?

有一些实例可以使用递归谓词进行CLP(FD)转换,从而使谓词变得双向。这种方法的限制是什么?例如,以下计算是否可以进行CLP(FD)转换: Fn: n-th Fibonacci Number Ln: n-th Lucas Number (starting with 2) 通过这个双重递归...

16得票4回答
Prolog中可逆数值计算

在阅读SICP时,我遇到了逻辑编程第4.4章。然后我开始研究Prolog编程语言,并尝试理解其中一些简单的赋值操作。我发现Prolog似乎在数值计算方面有些问题。 这里是在标准Prolog中计算阶乘的方法:f(0, 1). f(A, B) :- A > 0, C is A-1, f(C...

10得票4回答
Prolog - 使用DCGs处理二进制数据

在我看来,使用DCGs处理字节列表中的二进制数据应该是可行的。然而为了使其通用,必须使用位运算符,这意味着需要使用 is/2,这也意味着实例化顺序是一个问题,这可能会使DCGs在解析和生成时变得混乱。这里的想法是序列化/反序列化二进制数据,但我认为这个示例足够简单,可以说明问题。 让我用一些...

24得票9回答
解决 N 皇后问题...我们能走多远?

N皇后问题: 该问题描述了一个尺寸为N×N的国际象棋棋盘,找出不同的排列方式,使得N个皇后被放置在棋盘上时,彼此之间没有任何威胁。 我的问题是: 程序能够在合理时间内计算出答案的最大值N是多少?或者我们目前见过的最大N值是多少? 这是我使用CLPFD(Prolog)编写的程序: gen...

10得票3回答
NP完全的背包问题

我看到了这个 ECLiPSe解决方案,它可以解决这个 XKCD漫画中提到的问题。我试图将其转换为纯Prolog。go:- Total = 1505, Prices = [215, 275, 335, 355, 420, 580], length(Prices, N), ...

10得票5回答
可逆的“二进制到数字”谓词

什么是将二进制位(例如0/1列表)以可逆方式转换为数字的最佳方法?我在swi中编写了本地谓词,但有更好的解决方案吗? 此致敬礼

10得票6回答
如何在SWI-Prolog中复制预定义长度/2的行为?

我想复制标准的length/2谓词的行为。特别是,我希望我的谓词能够适用于有界和无界的参数,就像下面的示例一样: % Case 1 ?- length(X, Y). X = [], Y = 0 ; X = [_G4326], Y = 1 ; X = [_G4326, _G4329], Y =...