Цитата:
Сообщение от blondinka62733
Три миссионера и три каннибала хотят переправиться с левого берега на правый. Как это сделать за минимальное число шагов, если в их распоряжении имеется трехместная лодка и ни при каких обстоятельствах (в лодке или на берегу) миссионеры не должны оставаться в меньшинстве.
Вот результаты нашей работы:
...
Ответ почему-то выдает просто Yes... Помогите пожалуйста, буду очень признательна.
Правильный ответ вот такой: Первыми пересекают реку миссионер и каннибал. После этого миссионер возвращается. Затем пересекают реку два каннибала. Один из них возвращается. Потом два миссионера пересекают реку. Миссионер и каннибал возвращаются. Два миссионера пересекают реку. Один каннибал возвращается. Два каннибала пересекают реку. Один каннибал возвращается. Два оставшихся каннибала пересекают реку.
|
Код:
go:-go(state(east,east,east,east),state(west,west,west ,west)).
тут всего четыре позиции...а человек всего шесть и остальная часть программы построена на шесть позиций, поэтому как-то так:
Код:
go:-go(state(east,east,east,east,east,east),state(west,west,west ,west,west,west)).
В результате считает довольно долго, но вроде считает...Хотя может и зациклился. Посмотрим.
Как досчитает - напишу результат выполнения, совпал ли он с правильным.