Каннибал мен миссионерлер


L('M'e1)(e2) = R(e1)('M'e2)



бет5/10
Дата07.02.2022
өлшемі38,44 Kb.
#84826
түріПрограмма
1   2   3   4   5   6   7   8   9   10
Байланысты:
Каннибал мен миссионерлер
Ассемблерде программалау негіздері, Ассемблерде программалау негіздері
4 L('M'e1)(e2) = R(e1)('M'e2);
* C crossing
5 L(e1'C')(e2) = R(e1)(e2'C');
* Boat on right bank
* MM crossing
1 R(e1)('MM'e2) = L('MM'e1)(e2);
* CC crossing
2 R(e1)(e2'CC') = L(e1'CC')(e2);
* MC crossing
3 R(e1)('M'e2'C') = L('M'e1'C')(e2);
* M crossing
4 R(e1)('M'e2) = L('M'e1)(e2);
* C crossing
5 R(e1)(e2'C') = L(e1'C')(e2);
* Otherwise move impossible
s.Mv eS = Imposs;
}
Функция приемлемости проверяет, что условие "непоедания'' выполняется на каждом берегу:
* Admissibility of the move
Admiss {
s.Side(eL)(eR),
: T, : T =
s.Side(eL)(eR);
eS = Imposs;
}
* No eating missionaries
No-eat {
*1. Both missionaries and cannibals are present
'M'e1'C' = ;
* Otherwise OK
e1 = T; }
* Both M and C on the bank.Compare the numbers.
Compare {
'C'e1 = F;
'M'e1'C' = ;
e1 = T; }
Дерево достижимых состояний содержит узлы-состояния и ребра-перемещения. Перемещение и состояние, в которое оно ведет, могут быть легко объединены в единый элемент, который будет называться связью:


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©www.engime.org 2024
әкімшілігінің қараңыз

    Басты бет