ich eine einfache Einschränkung über alle Werte einer Liste tun wollen, möchte ich jeden Index jeder Zeile eines Arrays die folgende (ic) Zwang haben:einfache Arithmetik Constraint auf Liste ECLIPSE clp
500 # = 2^X1 + 2^X2 + 2^X3 + ... + 2^X9
Ich versuche, den folgenden Code zu tun. Array ist eine 9x9-Matrix und für jede Zeile soll die obige Bedingung erfüllt sein. Dies scheint jedoch nicht zu funktionieren, das Programm findet keine möglichen Werte, die die Einschränkung erfüllen.
model(Array) :-
Array :: 1..9,
(for(I,1,9), param(Array)
do
X1 is Array[I,1],
X2 is Array(I,2],
X3 is Array[I,3],
X4 is Array[I,4],
X5 is Array[I,5],
X6 is Array[I,6],
X7 is Array[I,7],
X8 is Array[I,8],
X9 is Array[I,9],
500 #= 2^X1 + 2^X2 + 2^X3 + 2^X4 + 2^X5 + 2x^X6 + 2^X7 + 2^X8 + 2^X9
),
term_variables(Array,L),
labeling(L),
printBoard(Array).