здравствуйте, многоуважаемые участники форума! стоит вот такая задача: нужно построить автомат, распознающий все слова алфавита (10), где подслово (010) встречается в точности один раз. я уже понимаю, что состояний должно быть как минимум 8, но еще не могу понять как всё-таки должен выглядеть этот автомат. последнее мое решение распознавало слово (01010), где подслово (010) встречается два раза. выглядело оно так: 8 состояний, расположенных в два ряда: первый ряд 1, 2, 3, 4. второй ряд 5, 6, 7, 8. начальным является состояние 1, конечные 4, 7, 8. из состояния 1 стрелка над которой цифра 0 идет в состояние 2, стрелка с единицей - в 5. из состояния 5 выходит стрелка с нулем в состояние 2. стрелка с единицей из состояния 5 входит в него. из состояния 2 стрелка с единицей идет в три, с нулем входит в 2. из состояния 3 стрелка с нулем идет в 4 (конечное состояние), с единицей входит в 3. из состояния 4 стрелка с нулем идет в состояние 8 (конечное состояние), с единицей входит в 4. из состояния 8 стрелка с единицей идет в состояние 7 (конечное состояние), с нулем - входит в состояние 8. из состояния 7 стрелка с нулем идет в 6, с единицей входит в 7. состояние 6 - неконечно и стрелки из него идут в него само. спасибо за внимание! очень жду советов!
|