Предположим, у меня есть детерминированный автомат конечного состояния, который распознает язык L, состоящий из всех строк в {a, b} *, которые содержат нечетное число b, такое, что между каждыми двумя b в строке есть хотя бы один a.
Мне удалось вывести для этого конечный автомат, как показано в этом примере (флажки означают принятое состояние):
Но теперь я застрял;как я могу преобразовать это в регулярное выражение?Я действительно борюсь с этим, так как это довольно сложный пример.Я попытался:
a*b[a*ba*b]*a*
Но это все равно сопоставляет строки с четным числом b.Какое правильное регулярное выражение?