2 / 2 / 0
Регистрация: 19.11.2010
Сообщений: 38
1

Трамвай

21.01.2013, 14:32. Показов 1097. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана задача (см. приложение)
у меня получается 12 решений, а должно быть одно помогите найти ошибку??

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
predicates
nondeterm profession(string).
nondeterm metallist(string).
nondeterm number(integer).
nondeterm test(string, integer, string, integer, string, integer, string, integer).
nondeterm marsh33(string, integer, string, integer, string, integer, string, integer).
nondeterm chislo(string, integer, string, integer, string, integer, string, integer).
nondeterm marsh33a(string, integer);
nondeterm chislo2(string, integer, integer);
clauses
/*Аладар Петер Вилмош Лайош*/
profession("слесарь").
profession("электромонтер").
profession("маляр").
profession("фрезеровщик").
number(55).
number(15).
number(25).
number(33).
metallist("слесарь").
metallist("фрезеровщик").
 
marsh33a(Ap,33) :- metallist(Ap).
 
marsh33(Ap,An,_,_,_,_,_,_):- marsh33a(Ap,An).
marsh33(_,_,Pp,Pn,_,_,_,_):- marsh33a(Pp,Pn).
marsh33(_,_,_,_,Bp,Bn,_,_):- marsh33a(Bp,Bn).
marsh33(_,_,_,_,_,_,Lp,Ln):- marsh33a(Lp,Ln).
 
chislo2(P,N,Numb) :- N div 10 + N mod 10 = Numb.
 
chislo(Ap,An,_,_,_,_,_,_):- chislo2(Ap,An,6).
chislo(_,_,Pp,Pn,_,_,_,_):- chislo2(Pp,Pn,5).
chislo(_,_,_,_,Bp,Bn,_,_):- chislo2(Bp,Bn,6).
chislo(_,_,_,_,_,_,Lp,Ln):- chislo2(Lp,Ln,5).
 
test(Ap,An,Pp,Pn,Bp,Bn,Lp,Ln) :- profession(Ap), profession(Pp),profession(Bp),profession(Lp), Bp <> "электромонтер",
 number(An), number(Pn), number(Bn), number(Ln),
 An<>Pn, Bn<>An, Bn<>Pn, Ln<>An, Ln<>Pn, Ln<>Bn,
 Ap<>Pp, Bp<>Ap, Bp<>Pp, Lp<>Ap, Lp<>Pp, Lp<>Bp,
 Bn div 10 <> 1,
 marsh33(Ap,An,Pp,Pn,Bp,Bn,Lp,Ln),
 Ln div 10 = Ln mod 10,
 Pn <> 25,
 Ln <> 55,
 chislo(Ap,An,Pp,Pn,Bp,Bn,Lp,Ln)
 .
 
goal
test(Ap,An,Pp,Pn,Bp,Bn,Lp,Ln).
Результат:
Ap=slesar, An=15, Pp=electromonter, Pn=55, Bp=malar, Bn=25, Lp=frezirovshik, Ln=33
Ap=slesar, An=15, Pp=malar, Pn=55, Bp=electromonter, Bn=25, Lp=frezirovshik, Ln=33
Ap=electromonter, An=15, Pp=slesar, Pn=55, Bp=malar, Bn=25, Lp=frezirovshik, Ln=33
Ap=electromonter, An=15, Pp=malar, Pn=55, Bp=slesar, Bn=25, Lp=frezirovshik, Ln=33
Ap=electromonter, An=15, Pp=malar, Pn=55, Bp=frezirovshik, Bn=25, Lp=slesar, Ln=33
Ap=electromonter, An=15, Pp=frezirovshik, Pn=55, Bp=malar, Bn=25, Lp=slesar, Ln=33
Ap=malar, An=15, Pp=slesar, Pn=55, Bp=electromonter, Bn=25, Lp=frezirovshik, Ln=33
Ap=malar, An=15, Pp=electromonter, Pn=55, Bp=slesar, Bn=25, Lp=frezirovshik, Ln=33
Ap=malar, An=15, Pp=electromonter, Pn=55, Bp=frezirovshik, Bn=25, Lp=slesar, Ln=33
Ap=malar, An=15, Pp=frezirovshik, Pn=55, Bp=electromonter, Bn=25, Lp=slesar, Ln=33
Ap=frezirovshik, An=15, Pp=electromonter, Pn=55, Bp=malar, Bn=25, Lp=slesar, Ln=33
Ap=frezirovshik, An=15, Pp=malar, Pn=55, Bp=electromonter, Bn=25, Lp=slesar, Ln=33
12 Solutions
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2013, 14:32
Ответы с готовыми решениями:

Нарисовать Трамвай
Привет! Ребята, нужна помощь! Нужно нарисовать трамвай!

Трамвай и минимальное ускорение
Трамвай проходит путь S между двумя остановками за время T. Доказать, что его ускорение в...

В последнем предложении текста слово «автобус» заменить на «трамвай»
В последнем предложении текста слово «автобус» заменить на «трамвай».

Найти вероятность того, что второй по порядку вышедший на линию трамвай будет иметь №1
Из трамвайного парка в случайном порядке выходят 4 трамвая маршрутом №1 и 8 трамваев маршрута №2....


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

Или воспользуйтесь поиском по форуму:
3
2 / 2 / 0
Регистрация: 19.11.2010
Сообщений: 38
21.01.2013, 14:38  [ТС] 2
Условие задачи
Миниатюры
Трамвай   Трамвай  
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
21.01.2013, 21:41 3
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
predicates
nondeterm profession(string).
nondeterm metallist(string).
nondeterm number(integer).
nondeterm test(string, integer, string, integer, string, integer, string, integer).
nondeterm marsh33(string, integer, string, integer, string, integer, string, integer).
nondeterm chislo(string, integer, string, integer, string, integer, string, integer).
nondeterm marsh33a(string, integer);
nondeterm chislo2(integer, integer);
clauses
/*Аладар Петер Вилмош Лайош*/
profession("слесарь").
profession("электромонтер").
profession("маляр").
profession("фрезеровщик").
number(55).
number(15).
number(25).
number(33).
metallist("слесарь").
metallist("фрезеровщик").
 
marsh33a(Ap,33) :- metallist(Ap).
 
marsh33(Ap,An,_,_,_,_,_,_):- marsh33a(Ap,An).
marsh33(_,_,Pp,Pn,_,_,_,_):- marsh33a(Pp,Pn).
marsh33(_,_,_,_,Bp,Bn,_,_):- marsh33a(Bp,Bn).
marsh33(_,_,_,_,_,_,Lp,Ln):- marsh33a(Lp,Ln).
 
chislo2(N,Numb) :- N div 10 + N mod 10 = Numb.
 
chislo("фрезеровщик",An,_,_,_,_,_,_):- chislo2(An,6).
chislo(_,_,"фрезеровщик",Pn,_,_,_,_):- chislo2(Pn,5).
chislo(_,_,_,_,"фрезеровщик",Bn,_,_):- chislo2(Bn,6).
chislo(_,_,_,_,_,_,"фрезеровщик",Ln):- chislo2(Ln,5).
 
test(Ap,An,Pp,Pn,Bp,Bn,Lp,Ln) :- profession(Ap), profession(Pp),profession(Bp),profession(Lp), Bp <> "электромонтер",
 number(An), number(Pn), number(Bn), number(Ln),
 An<>Pn, Bn<>An, Bn<>Pn, Ln<>An, Ln<>Pn, Ln<>Bn,
 Ap<>Pp, Bp<>Ap, Bp<>Pp, Lp<>Ap, Lp<>Pp, Lp<>Bp,
 Bn div 10 <> 1,
 marsh33(Ap,An,Pp,Pn,Bp,Bn,Lp,Ln),
 Ln div 10 = Ln mod 10,
 Pn <> 25,
 Ln <> 55,
 chislo(Ap,An,Pp,Pn,Bp,Bn,Lp,Ln).
 
goal
test(Ap,An,Pp,Pn,Bp,Bn,Lp,Ln).
1
2 / 2 / 0
Регистрация: 19.11.2010
Сообщений: 38
22.01.2013, 21:44  [ТС] 4
Огромное спасибо, это была самая сложная задача из всех по прологу)
0
22.01.2013, 21:44
Ответ Создать тему
Опции темы

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