This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/pyswip/examples/coins/coins.pl

43 lines
640 B
Perl
Raw Normal View History

2010-06-01 00:33:32 +01:00
% Coins -- 2007 by Yuce Tekol <yucetekol@gmail.com>
:- use_module(library('clpfd')).
coins(S, Count, Total) :-
% A=1, B=5, C=10, D=50, E=100
S = [A, B, C, D, E],
Av is 1,
Bv is 5,
Cv is 10,
Dv is 50,
Ev is 100,
Aup is Total // Av,
Bup is Total // Bv,
Cup is Total // Cv,
Dup is Total // Dv,
Eup is Total // Ev,
A in 0..Aup,
B in 0..Bup,
C in 0..Cup,
D in 0..Dup,
E in 0..Eup,
VA #= A*Av,
VB #= B*Bv,
VC #= C*Cv,
VD #= D*Dv,
VE #= E*Ev,
sum(S, #=, Count),
VA + VB + VC + VD + VE #= Total,
label(S).
% :- findall(S, coins(S, 100, 500), Ss), halt.
%:- coins(S, 100, 500), writeln(S), fail.