![]() |
|
|
![]()
|
|
| snakelight |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 19.11.2013 Репутация: нет Всего: нет |
По условию 1 места между участниками заплыва могли распределиться следующим образом:
A: 4-7; E: 1,2; B: 5-7; F: 1-3; C: 6-7; G: 1-4; D: 1,7; Разумнее всего начать с одного из спортсменов, имеющих наименьшее число "возможностей", например с D или E. Итак, спортсмен D мог занять место 7 или 1. Однако если бы D занял место 7, то C мог бы занять лишь место 6, B - лишь 5 и A - лишь место 4. Таким образом, все места с 4-го по 7-е распределились бы так: место 4 занял A, место 5 - B, место 6 - C и место 7 - D. При этом все четыре участника заплыва от A до D оказались сдвинутыми назад по сравнению с тем распределением мест, которое предсказывал знаток спорта, что противоречит условию 2. Следовательно, D занял не 7-е, а 1-е место. Рассуждая так же, как и в первом случае придем к выводу, что места между участниками заплыва распределились следующим образом: место 1 занял D, место 2 - E, 3 - F и место 4 - G (I). Итак, судьбу четырех первых мест удалось установить однозначно. Однако при попытке выяснить, каким образом распределились три последних места между спортсменами A, B и C, мы придем к четырем различным ответам: (I) место 5 занял A, 6 - C, 7 - B; (II) место 5 занял B, 6 - C, 7 - A; (III) место 5 занял A, 6 - B, 7 - C; (VI) место 5 занял B, 6 - A, 7 - C; Любой из четырех вариантов распределения трех последних мест может служить продолжением единственного варианта (I) распределения четырех первых мест, при этом все четыре результата полностью согласуются с условиями 1 и 2. Следовательно, эти условия недостаточны для того, чтобы, пользуясь ими, можно было однозначно ответить на вопрос о том, как распределились места между участниками заплыва. Кто знает как решить это задачу средством prolog(turbo prolog)? Буду очень благодарен тем людям кто мне поможет с решением этой задачи. Спасибо. |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 6 Всего: 49 |
Ну, например, так: 1) Представляем распределение мест, занятых A,B,...,G как список неповторяющихся чисел от 1 до 7. 2) Пишем (или ищем готовый) генератор перестановок (ищется любым поисковиком по сочетанию "генератор перестановок prolog"). 3) Приделываем к генератору перестановок дополнительный предикат, проверяющий соответствие данной перестановки условиям задачи. Все. Способ не самый эффективный, но зато самый элементарный. |
|||
|
||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |