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

3 из 4 истинны 1 ложно

17.05.2013, 20:24. Показов 780. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
%        РАЗНЫЕ ЧЕТЫРЕХУГОЛЬНИКИ
%       Учитель начертил на классной доске четырехугольник.
%       Янош утверждал, что это квадрат. Имре считал, что четырехугольник - трапеция. Мария думала, что на доске изображен ромб. 
%       Эва назвала четырехугольник параллелограммом. Выслушав каждого и обстоятельно изучив свойства четырехугольника,
%       учитель установил, что ровно 3 из 4 утверждений истинны и ровно 1 утверждение ложно.
%       Какой четырехугольник начертил учитель на классной доске?
 
 
DOMAINS
 
имя,фигура=symbol
учитель=integer
список_друзей=чел(имя,фигура,учитель)
список=список_друзей*
%количество=кол(имя,учитель)
%список2=количество*
 
 
PREDICATES
 
nondeterm ищем_решение(список)
nondeterm возможно_учитель(учитель)
nondeterm сказал(имя,фигура,список_друзей,список_друзей,список_друзей,список_друзей,список)
nondeterm входит_в(список_друзей,список)
 
CLAUSES
 
%проверяем: входит ли студент в группу друзей?
 
входит_в(Друг,[Друг|_]).
входит_в(Друг,[_|Хвост_списка_друзей]):- входит_в(Друг,Хвост_списка_друзей).
 
%Правило
%квадрат
%сказал(Имя1,Фиг1,чел(Имя2,Фиг2,Уч2),чел(имре,трапеция,_),чел(мария,ромб,_),чел(эва,параллелограмм,_),Друзья):- Имя1=Имя2,Фиг1=Фиг2,Уч2=1,входит_в(чел(Имя2,Фиг2,Уч2),Друзья),
%входит_в(чел(имре,трапеция,0),Друзья),входит_в(чел(мария,ромб,1),Друзья),входит_в(чел(эва,параллелограмм,1),Друзья).
%трапеция
сказал(Имя1,Фиг1,чел(янош,квадрат,A),чел(Имя3,Фиг3,Уч3),чел(мария,ромб,B),чел(эва,параллелограмм,C),Друзья):- Имя1=Имя3,Фиг1=Фиг3,Уч3=1,входит_в(чел(Имя3,Фиг3,Уч3),Друзья),
входит_в(чел(янош,квадрат,0),Друзья),входит_в(чел(мария,ромб,0),Друзья),входит_в(чел(эва,параллелограмм,0),Друзья).
%ромб
%сказал(Имя1,Фиг1,чел(Имя2,Фиг2,Уч2),чел(Имя3,Фиг3,1),чел(Имя4,Фиг4,1),чел(Имя5,Фиг5,0),Друзья):- Имя1=Имя2,Фиг1=Фиг2,Уч2=1,входит_в(чел(Имя2,Фиг2,Уч2),Друзья),
%входит_в(чел(имре,трапеция,0),Друзья),входит_в(чел(мария,ромб,1),Друзья),входит_в(чел(эва,параллелограмм,1),Друзья).
%параллелограмм
%сказал(Имя1,Фиг1,чел(Имя2,Фиг2,Уч2),чел(Имя3,Фиг3,1),чел(Имя4,Фиг4,1),чел(Имя5,Фиг5,0),Друзья):- Имя1=Имя2,Фиг1=Фиг2,Уч2=1,входит_в(чел(Имя2,Фиг2,Уч2),Друзья),
%входит_в(чел(имре,трапеция,0),Друзья),входит_в(чел(мария,ромб,1),Друзья),входит_в(чел(эва,параллелограмм,1),Друзья).
 
%Возможные 
 
возможно_учитель(0).
возможно_учитель(1).
 
%Гипотиза
 
ищем_решение(Друзья):-
 
возможно_учитель(Уч1),возможно_учитель(Уч2),возможно_учитель(Уч3),возможно_учитель(Уч4),
Имя1="янош",Имя2="имре",Имя3="мария",Имя4="эва",
Фиг1="квадрат",Фиг2="трапеция",Фиг3="ромб",Фиг4="параллелограмм",
Друзья=[чел(Имя1,Фиг1,Уч1),чел(Имя2,Фиг2,Уч2),чел(Имя3,Фиг3,Уч3),чел(Имя4,Фиг4,Уч4)],
 
 
%Янош утверждал, что это квадрат.
 
%сказал(янош,квадрат,чел(_,_,1),чел(_,_,_),чел(_,_,_),чел(_,_,_),Друзья),
 
%Имре считал, что четырехугольник - трапеция. 
 
сказал(имре,трапеция,чел(_,_,_),чел(_,_,1),чел(_,_,_),чел(_,_,_),Друзья).
 
%Мария думала, что на доске изображен ромб. 
 
%сказал(мария,ромб,чел(_,_,0),чел(_,_,0),чел(_,_,1),чел(_,_,0)Друзья),
 
%Эва назвала четырехугольник параллелограммом. 
 
%сказал(эва,параллелограм,чел(_,_,_),чел(_,_,_),чел(_,_,_),чел(_,_,1)Друзья).
 
GOAL
 
ищем_решение(Друзья).
Вот собственно задача , вопрос заключается в том , как мне реализовать "ровно 3 из 4 утверждений истинны и ровно 1 утверждение ложно."

Возможно в гипотезе что-то не хватает если есть мысли любый буду рад выслушать , задача написана в прологе 5.2
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2013, 20:24
Ответы с готовыми решениями:

При каких значениях n из данных трех предложений два истинны, а одно ложно?
На множестве всех натуральных чисел заданы три предложения: p(n):n^2-2 кратно 7 g(n):n-2 кратно 7...

Установить, истинны или нет формулы
Пусть предметная область D = {a, b, c}, а двухместному предикату Q(x, y) поставлена в соответствие...

Какие из приведенных логических выражений истинны?
-sqr(x)+sqr(y)<=4 -при k=15 trunc(k mod 7 = k div 5 – 1) -при p=0.382 odd(trunc(10*p))

Список вторых элементов, на которых истинны все предикаты
Здравствуйте, помогите, пожалуйста доделать Дан список предикатов двух переменных: ...

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

Если ЛОЖНО, то почему бы и нет?
Вот мне несколько непонятна логика, на основании которой аргумент ЛОЖНО в условных операторах...

Какое определение верно, либо ложно
Какое определение верно, либо ложно: 1.Вложение подпрограмм не допускается. 2.После раздела...

Найти область, когда выражение ложно
Дано логическое выражение: Укажите значения переменных K, L, M, N, при которых логическое...

Если условие if ложно , то программа зависает.
Если условие выполняется все работает. Если же нет , то все зависает и 2 условие даже не...


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

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