каннибалы и миссионеры



Автор ~Angelina~ задал вопрос в разделе Другие языки и технологии

Решите головоломку! и получил лучший ответ

Ответ от Ёерж Неизвесный[гуру]
•ml, mr – количество миссионеров на левом и правом берегу соответственно;
•cl, cr – количество каннибалов на левом и правом берегу соответственно;
•p – положение лодки.
Таким образом, пространство возможных состояний таково:
S = { (ml, mr, cl, cr, p) | ml, mr, cl, cr  {0,1,2,3}, p  { left, right} }
рассмотрим алгебраическую систему, содержащую три универсума:
RiverSide = {left, right} - множество берегов реки;
Number = {0,1,2,3} - возможное количество персонажей одного типа;
Boolean = {true, false, undef} - вспомогательные значения.
Сигнатура включает в себя константы для обозначения элементов универсума; статические функции + и OtherSide с очевидной интерпретацией; и динамические функции:
Cannibals : RiverSide  Number - количество каннибалов на каждом берегу;
Preachers : RiverSide  Number - количество миссионеров на каждом берегу;
BoatPosition : RiverSide - положение лодки.
Начальное состояние соответствует интерпретации:
Cannibals = {left0, right3}, Preachers = {left0, right3}, BoatPosition = right.
В этом случае программа функции перехода выглядит так:
RegularStep()
choose c,p in Numbers where c+p{1,2}
and c  Cannibals(BoatPosition)
and p  Preachers(BoatPosition)
do-in-parallel
BoatPosition := OtherSide(BoatPosition)
Cannibals(BoatPosition) := Cannibals(BoatPosition) – c
Preachers(BoatPosition) := Preachers(BoatPosition) – p
Cannibals(OtherSide(BoatPosition)) := Cannibals(OtherSide(BoatPosition)) + c
Preachers(OtherSide(BoatPosition)) := Preachers(OtherSide(BoatPosition)) + p
enddo
Эта программа соответствует обычному шагу задачи, когда один или два персонажа садятся в лодку и переплывают на противоположный берег. В задаче предусмотрен также и другой тип перехода, когда каннибалы съедают зазевавшихся миссионеров.
WildLunch()
choose side in Side where Cannibals(side)>Preachers(side)
and Preachers(side)>0
Preachers(side) := 0
Три основных этапа построения модели:
Этап 1. Описание пространства возможных состояний системы. Выбирается набор параметров (сигнатура) , значения которых однозначно характеризуют состояние системы.
Этап 2. Указание начального состояния, или, если таких состояний несколько, описание множества состояний, с которых может начинаться вычисление.
Этап 3. Описание функции перехода. Как правило, в модели есть несколько функций перехода, каждая из которых имеет свою область определения и свой набор параметров.
Тогда любое вычисление – это последовательность состояний S0, S1, …, Sn, …, в которой S0 – начальное состояние, а Si+1 получено из Si применением одной из функций перехода.

Ответ от Ђатьяна Кутикова[новичек]
за два раза наверное

Ответ от Vik[гуру]
Ученье - свет, а неученье - чуть свет на работу..

Ответ от Василий Пупкин[гуру]
может 1 водитель есть который всех по одному перевозит

Ответ от Игорь Никитенко[новичек]
2 миссионера перебираются на правый берег1 миссионер возвращается на левый.1 каннибал съедает 1 миссионера, и плывет с ним в желудке на правый.1 миссионер возвращается на лодке обратно.2 оставшихся живых миссионера (на левом берегу) перебираются на правый.1 миссионер возвращается на левый.1 каннибал съедает 1 миссионера, и плывет с ним в желудке на правый.1 миссионер возвращается на лодке обратно.1 каннибал съедает 1 миссионера, и плывет с ним в желудке на правый.Честно-честно, все переберутся.Если трудно для восприятия - можно подвигать монетки по столу и тд.

Ответ от Надежда[новичек]
PascalРешение задач методом полного перебораЗадача о миссионерах и каннибалах.Три миссионера и три каннибала находятся на левом берегу реки. Все хотят перебраться на другой берег. Здесь же небольшая лодка, вмещающая не более двух человек. Если на каком-то берегу каннибалов окажется больше, чем миссионеров, то они съедят миссионеров. Если окажется больше миссионеров, то они обратят каннибалов в свою веру. Требуется найти последовательность перемещений лодки с одного берега на другой, гарантирующую безопасность миссионерам и свободу вероисповедания каннибалам.Закрытое хеширование Хеширование методом цепочек (со списками)для хеш-таблицы m=10; Pascal.ABC.Net.решить задачу про миссионеры и каннибалы

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Решите головоломку!
спросили в Вануату
Где до сих-пор живут каннибалы ?
Самой «каннибальской» страной современного мира является Индонезия. В этом государстве есть два
подробнее...
спросили в 1568 год
Что это за страна такая ТУВАЛУ? Где её местонахождение?
Тува́лу (до 1975 года — Острова Эллис) — тихоокеанское государство в Полинезии.
подробнее...
спросили в Другое
Серийный убийца-это маньяк?
Это не совсем одинаковые понятия. Маньяк - он разный. И не обязательно серийный убийца. У нас под
подробнее...
спросили в Ахар
как испечь бабку?
Бабка ромовая (Для микроволновки (СВЧ) )
Для приготовления блюда потребуются:
яйцо - 3
подробнее...
спросили в Маньяк
Почему большинство маньяков- мужчины?
Манья́к — cерийный убийца.

Большинство исследований показывают, что маньяк-убийца
подробнее...
Задача о миссионерах и людоедах на Википедии
Посмотрите статью на википедии про Задача о миссионерах и людоедах
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*