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



бет7/10
Дата07.02.2022
өлшемі38,44 Kb.
#84826
түріПрограмма
1   2   3   4   5   6   7   8   9   10
Байланысты:
Каннибал мен миссионерлер
Ассемблерде программалау негіздері, Ассемблерде программалау негіздері
    Бұл бет үшін навигация:
  • Imposs
$ENTRY Go { =
; };
Теперь желательно рассмотреть все случаи, которые могут встретиться в ходе поиска.
Задача считается решенной, когда состояние в последней связи является целевым. Имеем предложение:
e1 (s.M'='R()('MMMCCC')) =

;

В этом случае остается только подходящим образом напечатать решение, что является обязанностью функции Path .
Это предложение будет испытываться первым. Пока оно не срабатывает, продолжается поиск и удлинение нашего пути за счет добавления новой связи, возникающей в результате перемещения 1 :
e1 (sM'='eS) =
)>;
Теперь, если этот путь записать, видно, что последним состоянием в пути может оказаться Imposs . Поэтому, перед удлинением пути следует проверять, является ли последнее состояние допустимым или состоянием Imposs , и в последнем случае предпринять соответствующее действие. Как всегда в РЕФАЛе, предложение (или предложения) для специального случая, когда eS является Imposs, должно предшествовать предложению (ям) для общего случая.
Если результатом последнего перемещения является Imposs , испытывается следующее перемещение, т.е., последняя связь замещается следующим образом:


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




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

    Басты бет