Регулярное выражение для формирования слов точно с 4 а или 5 б

В теории формального языка (с Kleene Star), если бы я хотел создать регулярное выражение, которое определяет язык, содержащий все слова в множестве {a,b}, точно с 4 a или 5 b.

(обратите внимание, что моя книга использует + для ИЛИ и * для 0 или многих)

Пока что у меня есть:

[a (b *) aaa + aa (b *) aa + aaa (b *) a + aaaa (b *) + abababab + babababa + (b *) aaaa]

+

[b (a *) bbbb + bb (a *) bbb + bbb (a *) bb + bbbb (a *) b + bbbbb (a *) + (a *) bbbbb + бабабабаба + абабабабаб]

Есть ли укороченный способ сделать это? Не похоже, что теория допускает использование min и max для букв.

1 ответ

Решение

Ваше выражение не подходит для всех возможностей (например, babababababbbb). Искомое выражение должно быть намного проще:

[ b*ab*ab*ab*ab* + a*ba*ba*ba*ba*ba* ]
Другие вопросы по тегам