Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Prolog > Решение логических задач.


Автор: Линус 9.1.2015, 19:45
Три друга заняли первое, второе, третье места в соревнованиях универсиады. Друзья разной национальности, зовут их по-разному, и любят они разные виды спорта. Майкл предпочитает баскетбол и играет лучше, чем американец. Израильтянин Саймон играет лучше теннисиста. Игрок в крикет занял первое место. Кто является австралийцем? Каким спортом увлекается Ричард?
nation(austrian).
nation(american).
nation(israeli).
sport(basketball).
sport(tennis).
sport(criket).            
name(mikl).
name(saimon).
name(richard).
prize(1).
prize(2).
prize(3).               
soot(N,Nat,S,M):-nation(Nat),sport(S),name(N),prize(M),N=mikl,S=basketball,not(S=tennis),not(S=criket),not(Nat=american),not(Nat=israeli),not(M=1), not(M=3).
soot(N,Nat,S,M):-nation(Nat),sport(S),name(N),prize(M),N=saimon,S=criket, not(S=tennis),not(S=basketball),Nat=israeli,not(Nat=american),not(Nat=austrian),not(M=3).
soot(N,Nat,S,M):-nation(Nat),sport(S),name(N),prize(M),N=richard, not(S=basketball),Nat=american,not(Nat=israeli),M=3.

Решила задачу, но не могу объяснить на языке SWI Prolog, помогите пожалуйста. 

Автор: rrrFer 10.1.2015, 03:05
http://pro-prof.com/archives/1299

Там есть пошаговое объяснение твоей задачи.

Автор: Линус 10.1.2015, 11:15
Мне вот так надо объяснить,а я так не могу.
A :- B_1, B_2. % правило читается как : Если B_1 и B_2, то A 
нечетное_простое(Число) :- простое(Число), нечетное(Число).
% Если "Число" - простое и нечетное, то "Число" - нечетное_простое

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)