Проблема регулярного выражения

Каково регулярное выражение для языка 0m1n, где m+n ровен?

6
задан Michael Myers 9 March 2010 в 15:23
поделиться

2 ответа

Если вы имеете в виду строку 000 ... 111 ... , где длина строки четная, вы можете использовать ^ (00) * (01)? (11) * $

14
ответ дан 8 December 2019 в 16:01
поделиться

Итак, вам нужно рассмотреть для нуля случаи, когда они нечетные и когда они четные. Это требует двух состояний, одно для четных нулей, другое для нечетных. Тогда для случая нечетных нулей вам нужно иметь 1 единицу, затем четное количество единиц. Для четного случая нужно просто четное количество единиц.

Легко написать DFA, но я не знаю, как его здесь изобразить, поэтому рискну предположить регулярное выражение:

(0 (00)* 1 (11)*) \/ (00)*(11)*
1
ответ дан 8 December 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: