Я работаю над упражнением на мышление, которое мне дал мой профессор в конце лекции. Проблема состоит в том, чтобы построить DFA с учетом определения конкретного языка. Прежде чем я создам DFA, первое мыслительное упражнение состоит в том, чтобы преобразовать определение языка в регулярное выражение.
Предоставленный алфавит является двоичным {0, 1}
Определение языка довольно неформальное:
Язык, определяющий множество двоичных строк, в которых каждая подстрока длины 3 имеет хотя бы один нуль.
Таким образом, примерами строк, соответствующих этому определению, будут 000
, 001
, 1010
и так далее.
Моя проблема заключается в том, чтобы найти регулярное выражение, соответствующее этому определению языка. Я пытался поиграться с http://regexr.com/, но обнаружил, что "..0" соответствует только каждые три символов с нулем в конце. Я не уверен, как сопоставить каждую подстроку в том, как определен язык, или если это вообще возможно.
Есть ли способ построить регулярное выражение для этой проблемы?