Cześć,
spotkałem się ostatnio z takim zadaniem:
W ogrodzie siedziały 4 pary narzeczonych i zajadały śliwki Andzia zjadła 2 śliwki, Beata 3, Celina 4, Danusia 5. Ich narzeczeni również nie próżnowali.
Andrzej zjadł tyle co jego narzeczona, Bogumił dwa razy tyle Cezary trzy razy tyle, Damian cztery razy tyle. Wszyscy razem zjedli 44 śliwki Jakie są pary narzeczonych?
Stworzyłem do tego następujący kod:
pary(X1,X2,X3,X4) :-
L=[1,2,3,4],
A = 2,
B = 3,
C = 4,
D = 5,
select(X1,L,L1),
select(X2,L1,L2),
select(X3,L2,[X4]),
A*X1+B*X2+C*X3+D*X4 =:= 30.
Zapytanie daje następujący wynik:
?- pary(Andzia,Beata,Celina,Danusia).
Andzia = 4,
Beata = 3,
Celina = 2,
Danusia = 1
Kod działa poprawnie, ponieważ pokazuje, która dziewczyna jest z chłopakiem, który zjadł daną krotność jej śliwek. Moje pytanie jest następujące: W jaki sposób zmienić kod programu, aby w zapytaniu pojawiały się imiona chłopaków zamiast liczb?