clpfd

    6熱度

    3回答

    我在邏輯號碼的這個自然數評估的教程來了,它已經讓我有些頭疼: natural_number(0). natural_number(s(N)) :- natural_number(N). 規則大致指出:如果N是0這很自然,如果不是我們試着將s/1的內容遞歸回規則,直到內容是0,那麼它是一個自然數,如果不是那麼它就不是。 所以我測試了上述邏輯實現,心想,這個好作品,如果我要代表s(0)爲1和s(

    2熱度

    1回答

    我在解決謎題時遇到了一些問題。我還沒有找到解決這個難題的任何地方,但我試圖寫在Prolog,但我認爲我的解決方案不會很快(我生成每個解決方案,並刪除它們,如果他們不可能或正確)。 這是我的問題: (我找到了那個謎題的名字,這裏是關於那個謎題的所有規則的鏈接:http://en.wikipedia.org/wiki/Kuromasu)。 現在我有一個不同的問題,哪個方法會比較容易編寫,而且在Prol

    1熱度

    1回答

    我想解決一個算術表達式在prolog(實現 - eclipse prolog)。要解決的算術表達式是這樣的: A * (C + B * X) + D * X = E X是要被計算的值,和所有其他(A,B,C,d,E)是所有數字。 例如:5×(3 + 2 * X)+ 2 * X = 39,在計算應與值2 查詢(目標)將被輸入到分配的Prolog X將採取形式: ?- compute(5*(3+2

    0熱度

    2回答

    這裏有經典的SENDMORY地穴算術題solutiong使用序言約束求解機制 - :- lib(ic). sendmore(Digits) :- Digits = [S,E,N,D,M,O,R,Y], Digits :: [0..9], alldifferent(Digits), S #\= 0, M #\= 0, 1000*S + 100*E + 10*N + D + 1000*

    2熱度

    2回答

    fd_domain([A, B, C], 0, 9), (A**(B+C)) #= ((A**B)*(A**C)). 也許有些解決方案?似乎確定,P 我收到的特定錯誤: uncaught exception: error(instantiation_error,(#=)/2)

    2熱度

    2回答

    對於我的程序,我需要列出一個列表,每個子列表包含2個數字,X和Y以及這兩個數字的總和和乘積。 到目前爲止,我有以下幾點: genList(95, X,[]):-!. genList(N, X,[[X,Y,Sum,Product]|Xs]):- Y is N+1, Sum is X+Y, Sum<101, Product is X*Y, N1 is

    4熱度

    2回答

    對於我的「聲明性語言」類,我們必須編寫一個解決七巧板拼圖的序言程序。 謎題由謎題點的座標列表標識。例如,puzzle(7,[(0,0),(8,0),(4,4)])是一個帶有標識符7的拼圖,代表一個三角形。 這是我的(天真的)解決這個問題的方法。執行從調用tangram(Puzzle, Puts)開始。該程序從拼圖的所有可能部分開始。然後,我選擇一塊,嘗試一個位置和一個旋轉,如果這給出了一個有效的位

    9熱度

    3回答

    我有一個使用約束條件在Sicstus Prolog中編寫的程序。 我的目標是使用標籤/ 2和其他方法來獲得我的變量的隨機實例化。 例子: X #> 2, Y #= 2*X, Z #<10 如果我使用 List = [X,Y,Z], labeling([], List) 獲得將是第一個結果X = Y = Z = 0。你怎麼認爲是返回一組隨機的最佳方式的X,Y和Z值?

    2熱度

    2回答

    我試圖使用約束X不是列表中的值。 從SICStus Prolog manual: ?X in_set +FDSet 我無法弄清楚如何將列表轉換爲FDSet,雖然。 我有一個整數列表[2,3,8,9],我想限制變量X的域不在列表中。我怎麼做?謝謝。

    0熱度

    3回答

    我想使用此代碼生成多個排列的: :- use_module(library(clpfd)). p(N, Indexes) :- M in 1..N, M #=< N, length(Indexes, M), Indexes ins 1..N. 它返回我所有的成績,但最終崩潰與ERROR: Out of global stack