Нормальный алгорифм Маркова
Материал из Информатика и Техники
Условие задачи
Написать фунцию, реализующую нормальный алгорифм Маркова и проверить ее работоспособность.
Функция должна принимать три параметра:
- исходная текстовая строка
- выполняемый алгорифм
- максимально допустимое число шагов (по умолчанию 1000,
Nonе
означает неограниченное число шагов)
Нормальный алгоритм должен записываться в виде списка кортежей, каждый из которых содержит три элемента:
- исходная строка правила;
- замещающая строка правила;
True
, если правило завершающее,False
, если правило обыкновенное.
Например, алгорифм
a01 -> 1a0
a00 -> 0a0
a->.
->a
Должен быть записан следующим образом
[
( 'a01', '1a0', False, ),
( 'a00', '0a0', False, ),
( 'a', '', True, ),
( '', 'a', False, ),
]
Функция должна возвращать полученную в результате работы алгорифма строку. Если количество выполненных алгорифмом шагов превысило максимально допустимое, функция должна выбросить исключение MaximumStepsExceeded
Указания к решению задачи
Тип исключения MaximumStepsExceeded
в языке Python отсутствует -- его необходимо создать самостоятельно.