:- use_module(library(clpfd)). eier(Vars) :- Vars = [BrittasAnzahl, % 51 PetersAnzahl, % 57 BrAnzMo, % 18 BrAnzDi, % 17 BrAnzMi, % 16 PetAnzMo, % 18 PetAnzDi, % 19 PetAnzMi, % 20 BrKostenMo, % 666 BrKostenDi, % 969 BrKostenMi, % 1232 PetKostenMo, % 1278 PetKostenDi, % 969 PetKostenMi, % 620 BrPreisMo, % 37 BrPreisDi, % 57 BrPreisMi, % 77 PetPreisMo, % 71 PetPreisDi, % 51 PetPreisMi], % 31 domain(Vars,0,1500), BrittasAnzahl #= BrAnzMo + BrAnzDi + BrAnzMi, PetersAnzahl #= PetAnzMo + PetAnzDi + PetAnzMi, BrKostenMo #= BrAnzMo * BrPreisMo, PetKostenMo #= PetAnzMo * PetPreisMo, BrKostenDi #= BrAnzDi * BrPreisDi, PetKostenDi #= PetAnzDi * PetPreisDi, BrKostenMi #= BrAnzMi * BrPreisMi, PetKostenMi #= PetAnzMi * PetPreisMi, BrAnzMo #= BrAnzDi + 1, BrAnzDi #= BrAnzMi + 1, PetAnzMo #= PetAnzDi - 1, PetAnzDi #= PetAnzMi - 1, BrPreisMo #= BrPreisDi - 20, PetPreisMi #= PetPreisDi - 20, BrPreisDi #= BrPreisMi - 20, PetPreisDi #= PetPreisMo - 20, BrKostenMo + BrKostenDi + BrKostenMi #= 2867, PetKostenMo + PetKostenDi + PetKostenMi #= 2867, domain([MarzDiff,NougDiff,LikDiff],1,50), (MarzDiff #= BrPreisMo - PetPreisMi) #\/ (MarzDiff #= PetPreisMi - BrPreisMo), (NougDiff #= BrPreisDi - PetPreisDi) #\/ (NougDiff #= PetPreisDi - BrPreisDi), (LikDiff #= BrPreisMi - PetPreisMo) #\/ (LikDiff #= PetPreisMo - BrPreisMi), BrittasAnzahl #< PetersAnzahl, labeling([],Vars).