Математические задачи и головоломки. Задача про козу капусту и волка
Решение: Объясните задачу про волка, козу и капусту
Здравствуйте! Я прошу у Вас помощи, на SWI Prolog нашла решение задачи про волка, козу и капусту, но не знаю какой вопрос задать, что бы программа выдала мне ответ. Вот собственно решение: состояние(правый,правый,правый,правый,_):- write('Приехали'),nl, write('Итоговая последовательность действий в обратном порядке:'),nl. состояние(Человек,Волк,Коза,_,_):- Волк=Коза,not(Коза=Человек),write('Козу съели'),nl,!,fail. состояние(Человек,_,Коза,Капуста,_):- Капуста=Коза,not(Коза=Человек),write('Капусту съели'),nl,!,fail. состояние(правый,Волк,Коза,Капуста,Последний):- not(Последний=ничего),write('Поехали порожняком на левый'),nl, состояние(левый,Волк,Коза,Капуста,ничего),write('Поехали порожняком на левый'),nl. состояние(Вместе,Вместе,Коза,Капуста,Последний):- not(Последний=волк),напротив(Вместе,Другой), write('Повезли волка на'),write(Другой),nl, состояние(Другой,Другой,Коза,Капуста,волк), write('Повезли волка на '),write(Другой),nl. состояние(Вместе,Волк,Вместе,Капуста,Последний):- not(Последний=коза),напротив(Вместе,Другой), write('Повезли козу на '),write(Другой),nl, состояние(Другой,Волк,Другой,Капуста,коза), write('Повезли козу на '),write(Другой),nl. состояние(Вместе,Волк,Коза,Вместе,Последний):- not(Последний=капуста),напротив(Вместе,Другой), write('Повезли капусту на '),write(Другой),nl, состояние(Другой,Волк,Коза,Другой,капуста), write('Повезли капусту на '),write(Другой),nl. состояние(левый,Волк,Коза,Капуста,Последний):- not(Последний=ничего), write('Поехали порожняком на правый'),nl, состояние(правый,Волк,Коза,Капуста,ничего), write('Поехали порожняком на правый'),nl. напротив(правый,левый). напротив(левый,правый). goal:-состояние(левый,левый,левый,левый,ничего). Я это решение перевела на английский язык, что бы SWI Prolog смог почитать его: condition(right,right,right,right,_):- write('came'),nl, write('Final procedure in reverse order:'),nl. condition(Man,Wolf,Goat,_,_):- Wolf=Goat,not(Goat=Man),write('the Goat ate'),nl,!,fail. condition(Man,_,Goat,Cabbage,_):- Cabbage=Goat,not(Goat=Man),write('Cabbage ate'),nl,!,fail. condition(right,Wolf,Goat,Cabbage,Last):- not(Last=none),write('Went empty on the left'),nl, condition(left,Wolf,Goat,Cabbage,nothing),write('Went empty on the left'),nl. condition(Together,Together,Goat,Cabbage,Last):- not(Last=wolf),opposite(Together,Other), write('Drove the wolf'),write(Another),nl, condition(Other,Another,Goat,Cabbage,wolf), write('Drove the wolf '),write(Another),nl. condition(Together,Wolf,Together,Cabbage,Last):- not(Last=goat),opposite(Together,Other), write('Drove the goat '),write(Another),nl, condition(Other, Wolf, Other,Cabbage,goat), write('Drove the goat '),write(Another),nl. condition(Together,wolf,Goat,Together,Last):- not(Last=cabbage),opposite(Together,Other), write('was Taken cabbage '),write(Another),nl, condition(Other,wolf,Goat,Another,cabbage), write('was Taken cabbage '),write(Another),nl. condition(left,Wolf,Goat,Cabbage,Last):- not(Last=none), write('Went empty on the right'),nl, condition(right,Wolf,Goat,Cabbage,nothing), write('Went empty on the right'),nl. front(right,left). front(left,right).Подскажите пожалуйста, верное ли решение и какой вопрос нужно задать. Спасибо Вам заранее!!!
Александра Лихачёва у меня есть вапрос. почему НЕТ ХОЗЯИНА?
Александра Лихачёва 11.09.2018 - 09:10
+Ефим Тимофеев Пока гребет не сможет съесть!)))))
Kinder 06.09.2018 - 07:21
Класс👍 Александра Лихачёва 08.09.2018 - 22:34
+Kinder 2017 Спасибо))
Александра Лихачёва 08.09.2018 - 21:04
yugo-gradnya.ru
Математические задачи и головоломки
На сайте выложены математические задачи, головоломки, игры, шутки и фокусы. Для их решения от Вас потребуется немного ума, смышлености и логических рассуждений...
Сегодня
51. Волк, коза и капуста.51. Волк, коза и капуста.
Это старинная задача, которая имеет сказочное содержание.
Некий человек должен был перевезти в лодке через реку волка, козу и капусту. В лодке мог поместиться только один человек, а с ним или волк, или коза, или капуста. Но если оставить волка с козой без присутствия человека, то волк съест козу, если оставить козу с капустой, то коза съест капусту, а в присутствии человека "никто никого не ел". Человек все-таки перевез свой груз через реку. Как он это сделал?
Ответ
На главную
Следующая>>>
www.fookus.narod.ru
Решение задачи про волка, козу и капусту (2 способа решения)
Категория: Задачи на логику
Одна из популярных детских логических задач. Где в качестве «участников» головоломки есть капуста, волк и коза, а также мужик с лодкой, тот самый владелец всего этого «винегретного» скарба. Так вот, у мужика такая незадача… Коли оставишь волка с овцой, то тот задерет последнюю. А если козу с капустой, то не видать ему щей с квашенной. При этом надо бы перебраться на другой берег, а в лодке два места, для него и еще чего-нибудь или кого-нибудь. Как быть? Как переправиться на другой берег? Что же давайте к сути решения этой задачи.
Решение задачи про волка, козу, капусту и лодку
Решение само по себе должно исходить из логики того, что противоположно условию задачи, то есть необходимо понимать, что волк капусту не есть ибо он не козел! Собственно здесь и начинается катавасия. Значит так.
1 способ
Вначале берем козу и едем на другой берег. Там оставляем козу и едем за капустой. Привозим капусту. После козу заберем и едем к волку обратно. Теперь козу оставляем, а волка берем. Едем с ним к капусте и оставляем. Плывем за козой и возвращаемся к волку и капусте. Собственно все логично. Если почитать и себе представить, то все получается. У кого не получается представлять, тот смотрит на картинку.
2 способ
Также начинаем с козы. Перевозим ее и оставляем. Берем волка и едем обратно к козе. Привозим волка, но козу забираем и едем обратно к капусте. Козу высаживаем и берем капусту. Везем капусту к волку. Возвращаемся. Берем козу и едем обратно в волку и козе
Вот видите у этой задачи даже два варианта, с разными вариациями кого и в какое время переправить. Так что знайте, что в жизни очень мало безвыходных ситуаций. И если вы не видите выхода, то это совсем не значит, что его нет. Просто вы не в состоянии решить задачу в одиночку. Посоветуйтесь с кем-нибудь, быть может вам и дадут хороший совет!