Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 19.02.2015
Сообщений: 21
1

Логическая задача на Prolog

22.05.2016, 20:49. Показов 1114. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сама задача:
Министры иностранных дел России, США и Китая обсудили за закрытыми дверями проекты соглашения о полном разоружении, представленные каждой из стран. Отвечая затем на вопрос журналистов: "Чей именно проект был принят?", министры дали такие ответы:
  1. Россия — "Проект не наш, проект не США";
  2. США — "Проект не России, проект Китая";
  3. Китай — "Проект не наш, проект России".
Один из них (самый откровенный) оба раза говорил правду; второй (самый скрытный) оба раза говорил неправду, третий (осторожный) один раз сказал правду, а другой раз — неправду.

Сам вопрос: Определите, представителями каких стран являются откровенный, скрытный и осторожный министры.

Как решать её так я знаю, ибо задача 3-ого класса, но как написать на прологе не знаю. Перекопатил уже кучу своего кода в swi-prolog, результат один: бред и говнокод.
Я пытался сам разобраться но никак поэтому прошу помощи тут.

Не судите строго, нам его подсунули уже на первом курсе.

Какие предикаты объявить, и как их реализовать, подскажите, попробую по вашим подсказкам написать код.

Добавлено через 15 минут
Моя запись фактов примерно такая:

Prolog
1
2
3
4
5
6
7
8
9
country(russia).
country(china).
country(usa).
approve(russia, russia, no).
approve(russia, usa, no).
approve(usa, russia, no).
approve(usa, china, yes).
approve(china, china, no).
approve(chine, russia, yes).
Добавлено через 46 минут
есть также такие предикаты, которые должны определять страну. говорящую правду, но они не работают
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
liar(Country, Project1) :-
    approve(Country, Project2, Status), Status=yes, Project1\=Project2.
liar(Country, Project1) :-
    approve(Country, Project2, Status), Status=no, Project1=Project2.
secretive(Country, Project1) :-
    approve(Country, Project2, Status), Status=no, Project1=Project2.
secretive(Country, Project1) :-
    approve(Country, Project2, Status), Status=no, Project1\=Project2.%secretive(Country, Project1) :-
 
honest(C) :-
    approve(C, Project, Status), Status=yes,
    liar(C1, Project), secretive(C2, Project), C1 \=Country, C2\=Country.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2016, 20:49
Ответы с готовыми решениями:

Логическая задача на Turbo prolog или Gui prolog
Может у кого есть исходни на Prolog ЗЫ заранее спаисбо)

Логическая задача Prolog
Дан взвешенный граф.Построить остовное дерево минимальной стоимости. пролог 1995 года ,без понятия...

Логическая задача PROLOG
болельщики автогонок "Формула-1", спорили о результатах предстоящего этапа гонок. — Вот увидишь,...

Логическая задача Prolog
Помогите, пожалуйста, решить логическую задачу. Проблема в том, что нужно и учесть условие...

0
22.05.2016, 20:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2016, 20:49
Помогаю со студенческими работами здесь

Логическая задача на Prolog
Помогите пожалуйста. Используя отсечение, неуспех и отрицание, написать программу на Prolog: На...

Логическая задача на Prolog
Всем привет! Помогите, пожалуйста, решить задачу на Prolog: Корнеев, Докшин, Мареев и Скобелев —...

Логическая задача в Prolog
Как реализовать эту задачу в прологе? Маша, Лиза, Катя и Ира пришли к Наде на День Рожденья с...

Логическая задача на prolog.
Пожалуйста, помогите решить задачу на прологе. Она показалась мне очень сложной. Решения не нашел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru