№1. Грустная история о том, как один лицеист очень хотел подарить "валентинку" любимой девочке. Он так сильно спешил, что, подбегая к крыльцу физфака поскользнулся и... упал (растянувшись рядом с машиной декана). Придя в себя, он никак не мог вспомнить, кому он хотел отправить "валентинку". В голове крутились имена: Таня, Лена, Аня, Катя и Марина. Но вспомнить нужно только одно. Напрягая свою память так, что можно было услышать шелест извилин в голове, несчастному влюбленному удалось установить следующее. 1. Если я люблю Таню, то я люблю Лену или Аню.
2. Если я люблю Лену, то я люблю Аню и Катю.
3. Если я люблю Аню или Катю, то я не люблю Марину.
4. Если я не люблю Катю, то я люблю Таню и Марину.
найти ему свою любовь.
predicates
nondeterm решение(string)
nondeterm условие(integer,integer,integer,integer)
nondeterm имя(integer,integer,integer,integer,integer,string)
clauses
решение(Имя):-
имя(Таня,Лена,Аня,Катя,Марина,Имя),
условие(1,Таня,Лена,Аня),
условие(2,Лена,Аня,Катя),
условие(3,Аня,Катя,Марина),
условие(4,Катя,Таня,Марина).
условие(1,Таня,Лена,Аня):-
Таня=1,Лена+Аня>0;Таня=0.
условие(2,Лена,Аня,Катя):-
Лена=1,Аня=1,Катя=1;Лена=0.
условие(3,Аня,Катя,Марина):-
Аня+Катя>0,Марина=0;Аня+Катя=0.
условие(4,Катя,Таня,Марина):-
Катя=0,Таня=1,Марина=1;Катя=1.
имя(1,0,0,0,0,"Таня").
имя(0,1,0,0,0,"Лена").
имя(0,0,1,0,0,"Аня").
имя(0,0,0,1,0,"Катя").
имя(0,0,0,0,1,"Марина").
goal
решение(Имя).
Объяснение:
Имя=Катя
1 Solution