0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 9
|
||||||
1 | ||||||
Логическая задача на TurboProlog23.12.2015, 22:41. Показов 2088. Ответов 5
Метки нет (Все метки)
Здравствуйте, помогите пожалуйста написать задачу на TurboProlog. Для четырех дружинников, фамилии которых начинаются буквами А, Е, Р, С, необходимо составить график дежурств на четыре вечера подряд, учитывая, что:
1) С и Р не могут дежурить в первый вечер в связи с командировкой: 2) если С выйдет во второй вечер или Р — в третий, то Е сможет подежурить в четвертый; 3) если А не будет дежурить в третий вечер, то Е согласен дежурить во второй вечер; 4) если Р в четвертый вечер уедет на конференцию, то А придется дежурить в первый, а С в третий вечер. Добавлено через 4 часа 32 минуты мой код не работает
0
|
23.12.2015, 22:41 | |
Ответы с готовыми решениями:
5
Задача в TurboProlog Логическая задача Логическая задача Логическая задача |
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
24.12.2015, 04:33 | 2 |
Конкретно эта ошибка из-за-того, что в строке 12 неправильное ключевое слово. Должно быть clauses.
А вообще еще много мелких описок. И логическая ошибка: у Вас один предикат check1 с четырьмя разными ветками, для четырех проверок. Но ветки одного предиката соединяются условием ИЛИ, а Вам на самом деле нужно И. Сделайте четыре разных предиката check1-check4 и все последовательно вызовите из solve.
1
|
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
24.12.2015, 04:37 | 3 |
Вообще, нужна хорошая обработка напильником.
Но даже после этого решений выпадает много: И заметно, что выпадают пары одинаковых решений, значит, даёт дубли Ваш permutation.
0
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 9
|
||||||
24.12.2015, 16:07 [ТС] | 4 | |||||
Вот я вроде переделала код, но теперь Solve не имеет решения, а все остальные предикаты по отдельности работают
0
|
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||||||
24.12.2015, 21:41 | 5 | |||||
Сообщение было отмечено Kristine как решение
Решение
Вторую, третью и четвертую проверки надо "закрыть" дополнительным правилом.
Напишу через пару часов, с телефона очень неудобно.. Добавлено через 3 часа 51 минуту На первый взгляд, надо примерно так:
Я ночью подумаю и напишу подробнее
1
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 9
|
|
26.12.2015, 12:30 [ТС] | 6 |
Спасибо, а можно как-то эту задачу решить без отсечения?
0
|
26.12.2015, 12:30 | |
26.12.2015, 12:30 | |
Помогаю со студенческими работами здесь
6
Логическая задача Логическая задача Логическая задача Логическая задача Логическая задача Логическая задача Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |