2

制約付きの 10 個の変数が必要ですが、Prolog は 9 にしかラベルを付けません。私のコードは次のとおりです。

:- use_module(library(clpfd)).
colour(Regions) :-
    Regions = [A,B,C,D,E,F,G,H,I,J],
    Regions ins 1..10, 
    all_distinct(Regions),
    labeling([], Regions).

%%% Output:
?-colour(X).
A = [1, 2, 3, 4, 5, 7, 6, 10, 8|...] ;   % only 9 variables labelled.

注:ins 1..9変数が 9 つある場合は 問題なく動作します。

4

0 に答える 0