[Закрыть]
 
popoff.donetsk.ua
Эмоции - это красивая обёртка для лжи. /Popoff/
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Функциональное и логическое программирование - Как составить факты и сформулировать запросы на Прологе?

Как составить факты и сформулировать запросы на Прологе?

форумы popoff.donetsk.ua
Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Автор Сообщение
Aidan
Aidan
Ноя, 2005
Сообщений: 4
Aidan url://forum.message:810
Как составить факты и сформулировать запросы на Прологе?

Добрый день.
Вопрос в следующем:
5 человек живут в 5 домах, по одному в каждом. (это упрощенно)
Известно. что Ч1 живет в доме Д1, Ч2 - Д2, Ч3 - Д3, Ч4 - Д4.
Можно ли и как определить, где живет Ч5 ?

popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:811

Факты:

живет(«Ч1»,«Д1»).
живет(«Ч2»,«Д2»).
живет(«Ч3»,«Д3»).
живет(«Ч4»,«Д4»).

Запрос:

?-живет(«Ч5»,X).

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Aidan
Aidan
Ноя, 2005
Сообщений: 4
Aidan url://forum.message:812

Спасибо, что уточнили тему топика.
Ответ, который Вы дали, не выдает правильного решения.

popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:813

Для Вашего вопроса существует много разных правильных ответов. Я дал один из вариантов правильного ответа на Ваш вопрос. Для того, чтобы определить, какой именно вариант правильного ответа из всего множества вариантов подходящих для вашего вопроса ответов считаете правильным Вы, нужно обладать телепатией. Я телепатией не обладаю. Именно поэтому я привел не тот ответ, который Вы имели в виду, а тот, о котором Вы фактически спрасили.

~~~~~ 18 Ноя 2005, 11:28 ~~~~~

Уточните Ваш вопрос и тогда я смогу уточнить свой ответ. Самый точный ответ возможен только при самой точной формулировке вопроса.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Aidan
Aidan
Ноя, 2005
Сообщений: 4
Aidan url://forum.message:814

Хорошо, я попробую.
В вышеописанной задаче определено 4 факта проживания людей в домах.
Ч1 живет в доме Д1, Ч2 - Д2, Ч3 - Д3, Ч4 - Д4.
Причем в каждом доме живет только один человек.

Естественно, Ч5 живет в Д5. Но в условиях это не указано. Поэтому мы не можем указать это в фактах.
Но от программы требуется указать именно место проживания Ч5.

Я так понимаю, что проблема в том, что в фактах не отражено, что «в одном доме только один человек».
Хотя даже с таким фактом не могу понять, как решать.
Ведь требуется найти... как бы это сказать.. исключение (?).

popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:815
<p><code>дом("Д1").<br />дом("Д2").<br />дом("Д3").<br />дом("Д4").<br />дом("Д5").<br /></code><br />а дальше разные варианты. Простой:<br /><code><br />найти(_,Y):-дом(Y),not(живет(_,Y)).<br /></code><br />расширенный, без not():<br /><code><br />свободен(Х):-дом(Х),живет(_,Х),!,fail.<br />свободен(_).<br />найти(X,Y):-живет(X,Y),!.<br />найти(_,Y):-дом(Y),свободен(Y).<br /></code><br />запросы:<br /><code><br />?-найти("Ч1",Х).<br />Х=Д1</p><p>?-найти("Ч5",Х).<br />Х=Д5</p><p>?-найти("Ч10",Х).<br />Х=Д5</p></code><br /><br /><system>~~~~~ 18 Ноя 2005, 13:38 ~~~~~</system><br /><quote><p>Естественно, Ч5 живет в Д5</p></quote><br /><p>Это не естественно. Нигде не сказано о том, что "есть дом Д5", "в этом доме никто не живет", "есть человек Ч5", "этот человек в одном из существующих домов".</p>
________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Aidan
Aidan
Ноя, 2005
Сообщений: 4
Aidan url://forum.message:819

Это работает.
Огромное спасибо.

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен
Вход
Поиск[?]:
Personal Photo.сайт:
www.denisey.com.ua