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. ?-