2
solve(Amounts) :-
    Total = 1505,
    Prices = [215, 275, 335, 355, 420, 580],

    length(Prices, N),
    length(Amounts, N),
    Amounts :: 0..Total//min(Prices),
    Amounts * Prices #= Total,

    labeling(Amounts).
4

2 に答える 2

5

何も問題はありません。これはhttp://eclipseclp.org/examples/xkcd287.ecl.txtの例であり、行を省略していなければ

:- lib(ic).

インターバル制約ソルバーをロードすると、ECLiPSe Prolog で問題なく動作します。

于 2016-03-03T13:14:18.187 に答える