Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кто является австралийцем? Каким спортом увлекаетс 
:(
    Опции темы
Линус
  Дата 8.12.2014, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.12.2014

Репутация: нет
Всего: нет



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

PM MAIL   Вверх
rrrFer
Дата 9.12.2014, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.5.2008
Где: Красноярск

Репутация: нет
Всего: 1



Вот тут твоя задача разобарна по полочкам, даже с иллюстрациями: Решение логических задач на пролог

Код

nation(austrian).
nation(american).
nation(israeli).
 
sport(basketball).
sport(tennis).
sport(cricket).
 
name(mikl).
name(saimon).
name(richard).
 
prize(1).
prize(2).
prize(3).

solve(Mans):-
  Mans = [man(X, XNat, XSp, XP), man(Y, YNat, YSp, YP), man(Z, ZNat, ZSp, ZP)],
 
  name(X), name(Y), name(Z), unique([X, Y, Z]),
  nation(XNat), nation(YNat), nation(ZNat), unique([XNat, YNat, ZNat]),
  sport(XSp), sport(YSp), sport(ZSp), unique([XSp, YSp, ZSp]),
  prize(XP), prize(YP), prize(ZP), unique([XP, YP, ZP]),
 
  % Майкл играет в баскетбол
  member(man(mikl, _, basketball, MiklPos), Mans),
 
  % Майкл играет лучше чем американец
  member(man(_, american, _, AmerPos), Mans), MiklPos < AmerPos,
 
  % Саймон - израильтянин
  member(man(saimon, israeli, _, SaimonPos), Mans),
 
  % Саймон играет лучше теннисиста
  member(man(_, _, tennis, TennPos), Mans), SaimonPos < TennPos,
 
  % игрок в крикет занят первое место
  member(man(_, _, cricket, 1), Mans).
 
start(Solve):-
  solve(Solve), Solve = [man(_, _, _, 1), man(_, _, _, 2), man(_, _, _, 3)].


Код взял из статьи, пояснения компипастить не стал.
Предикат unique проверяет чтобы элементы списка не повторялись (по ссылке его тоже можно найти где-то)
PM MAIL WWW ICQ   Вверх
Линус
Дата 18.12.2014, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 8.12.2014

Репутация: нет
Всего: нет



Спасибо)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.