2
1 < X < Y and X + Y <= 100. S = X + Y P = X * Y .
如何生成prolog中的四元組列表?
將綁定Q
以列表的目標s1(Q,100)
四倍[X, Y, S, P]
,其中 S = X + Y
和P = X*Y
。
我想有一個答案,例如 Q = [[3,4,7,12],[2,6,8,12], ....]
請幫助,新序言。
1 < X < Y and X + Y <= 100. S = X + Y P = X * Y .
如何生成prolog中的四元組列表?
將綁定Q
以列表的目標s1(Q,100)
四倍[X, Y, S, P]
,其中 S = X + Y
和P = X*Y
。
我想有一個答案,例如 Q = [[3,4,7,12],[2,6,8,12], ....]
請幫助,新序言。
例如在GNUProlog(或任何其它具有between/3):
?- findall([X, Y, S, P], (between(1,100,X),between(1,100,Y),1<X,X<Y,S is X+Y,S=<100,P is X*Y),L).
你可以優化它一點:'(2100,X)之間,X 1是X + 1,(X1之間, 100,Y),S是X + Y,...。意識到這「隱藏」了一些約束條件,而不是讓它們變得可見/明確...... – lurker
@lurker:當然,但我認爲儘可能簡單的事情對於新手來說可能很重要。 (順便說一下,我也會用CLP(FD)) – CapelliC
是的,我明白了。我同意CLP(FD),這是我在評論中的原始建議,但猜測OP並不想冒險進入該圖書館。 – lurker