clpfd

    2热度

    1回答

    我正在学习约束编程和递归编程 Prolog。我必须编程一个N级Koch曲线,该曲线应该在(Sx,Sy)开始,结束于(Ex,Ey)。正在计算的线段将存储在Ls中。 当我尝试执行generatelines(1,(60,0),(-60,0),Ls),我得到正确的1级的科赫曲线的4个 坐标: [[ (60, 0), (20, 0)], [ (20, 0), (0.0, -34.64)], [ (0.0

    0热度

    2回答

    我的代码如下,这段代码是Sudoku求解的代码,但只是为了行和列,第一次运行div2检查原始数据是否全部不同,然后在转换div2的第二次运行后检查if该列全部不同。 :- use_module(library(clpfd)). len(P):- div2(P), write("\n 1P2: "), write(P), transpose(P,X),

    1热度

    1回答

    我试图生成所有不同的三个元素列表的所有可能的组合。我正在使用CLPFD库来定义变量的域。 我定义了如下 listDif(F,X):-F ins 1..3,findall(F,all_distinct(F),X). 答案和查询都 ?- listDif([1,_,2],X). X = [[1, 3, 2]]. ?- listDif([1,_,_],X). X = [[1, _7374, _

    0热度

    3回答

    我在学习序言的“早期阶段”和整个逻辑谜语接缝容易实现传来: Link to the riddle | Link to solution 我们正在寻找满足以下条件的10位数字: 所有的0-9位出现一次。 前2位是整除2. 前3位是被3整除 ... 前10位是整除10 我想我首先需要将规则实施到.pl文件吗? 从解决方案的规则是: 一个整数可以除以1除以余数。 如果最后一位数字是直的,整数可以被2整除

    2热度

    1回答

    我正在学习Prolog。我正在试验elemindex谓词,形式为elemindex(element, index, list),例如,elemindex(1,0,[1,2,3,1]).或elemindex(3,0,[1,2,3,1]).。 由于实例的限制,我结束了这一点: elemindex(E, 0, [E|_]). elemindex(E, s(M), [_|L]) :- elemindex

    3热度

    1回答

    我在大学里学习了Prolog课程。课程要求我们编写prolog程序。我能够编写简单的程序,但是我发现消化复杂的程序很难。任何建议如何进行或我如何研究这个问题?解决这种课程的方法是什么?任何帮助赞赏。 谢谢。

    3热度

    1回答

    我正在使用clpfd library与prolog解决sudoku。我有跟踪标记的行和列,并得到下面的表格数量回溯每平方: (1 ,1 ,1) (9 ,2 ,1) BT (5 ,2 ,1) 我的问题是我怎么能得到从算法上面的信息? 另一个问题:算法本身是否遵守规则arc-consistency?

    4热度

    2回答

    为什么在返回预期答案后,ERROR: Out of global stack退出? ?- L #>= 0, L #=< 3, length(X, L). L = 0, X = [] ; L = 1, X = [_G1784] ; L = 2, X = [_G1784, _G1787] ; L = 3, X = [_G1784, _G1787, _G1790] ; ERROR:

    1热度

    1回答

    我正在使用Sicstus Prolog,并试图解决Domino拼图问题。 我有一个三胞胎列表,我需要设置的域名。我知道如何设置单个变量的域或单个变量的列表,但是如果我的列表具有三元组,并且三元组中的每个元素都有不同的域,我该如何做? DV = [R1-C1-D1, R2-C2-D2, ... , R15-C15-D15] 我想要做的是这样的: domain(R1, 1, 4) domain(

    1热度

    2回答

    SWI prolog中的#=和=:=有什么区别? 我已经找到了SWI prolog的定义,但仍然对此感到困惑。 http://www.swi-prolog.org/pldoc/man?section=arithpreds http://www.swi-prolog.org/pldoc/man?section=clpfd-arith-constraints ?- 3=:=3. true. ?-