Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Логическая задачка Strawberry Prolog, Про трех подруг и во что они одеты 
V
    Опции темы
Кудрявая
Дата 7.10.2010, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый вечер! Помогите пожалуйста написать программу решения логической задачи на Strawberry Prolog.
Три подруги были одеты в белое, зеленое и синее платья. Их туфли также были белого, зеленого и синего цветов. Известно, что только у Ани цвет платья и туфель совпадали. Ни платье, ни туфли Вали не были белыми. Наташа – в зеленых туфлях. Определите цвет платья и туфель каждой из подруг. Цвета одежды и туфель у всех подруг разные.



Для облегчения решений есть решение этой задачи на Visual Prolog 5.2.:

predicates
  anya(string,string)
  valya(string,string)
  natasha(string,string)
  dress(string)
  shoes(string)
clauses
  dress(X):- X="white" ; X="blue" ; X="green".
  shoes(X):- X="white" ; X="blue" ; X="green".
  anya(X,Y):- dress(X),shoes(Y),X=Y.
  valya(X,Y):- dress(X),shoes(Y),not(X="white"),not(Y="white"),X<>Y.
  natasha(X,Y):- dress(X),shoes(Y),Y="green",X<>Y.
goal
  anya(X,Y),valya(A,S),natasha(H,J), X<>A,X<>H,A<>H, Y<>S,Y<>J,J<>S.

 

Это сообщение отредактировал(а) Кудрявая - 7.10.2010, 21:26
PM MAIL   Вверх
Грымзик
Дата 7.10.2010, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код
?-solve(L),write(L),nl,fail.

append([],B,B).
append([H|Tail],B,[H|NewTail]):-append(Tail,B,NewTail).

insert(Y,XZ,XYZ):-append(X,Z,XZ),append(X,[Y],XY),append(XY,Z,XYZ).

permutation([],[]).
permutation([H|Tail],Ans):-permutation(Tail,NewTail),insert(H,NewTail,Ans).

solve([anya/A/X,valya/B/Y,natasha/C/Z]):-
    permutation([white,blue,green],[A,B,C]),
    permutation([white,blue,green],[X,Y,Z]),
    A=X,not(B=Y),not(C=Z),
    not(B=white),not(Y=white),
    Z=green.

PM MAIL   Вверх
Кудрявая
Дата 7.10.2010, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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