Работа на мою домашнюю работу для класса, и я пришел на этот вопрос:Минимальная длина регулярного выражения
Для каждого из следующих регулярных выражений, дают минимальные строки длины, которые не на языке определяется выражением ,
(bb)*(aa)*b*
a*(bab)*∪b∪ab
Я буду стараться только получить помощь по первому и увидеть, если я могу понять, второе. Heres, что я знаю: Kleene * указывает 0 или более возможных элементов. и объединение множества - это множество, содержащее все элементы множества a и множество b без повторения элемента. Проработка первой задачи, начиная от введения лямбды, я получаю:
первого запуска: bbaab
вторым: bbbbaabaabbaabbbbaab
третьим: bbbbbbaabaabbaabbbbaabaabbbbaabaabbaabbbbaabbbbbbaabaabbaabbbbaab
Если я делаю что правильно, чем строки длины от 0 до 5 не находятся на языке. Правильно ли я делаю это?
Подсказка: букв больше, чем 'a',' b' и 'U'. –
Первый случай может быть строкой нулевой длины. * означает 0 или более случаев, поэтому на самом деле, если вы используете пустую строку, это также нормально. –
Что вы имеете в виду, что есть больше букв, чем b и u? Я понимаю, что строка, обрабатывающая *, может быть любой возможной строкой, но в минимальном случае мы помещаем пустую строку λ вместо символа *, поэтому для генерируемой первой строки должно быть bb [λ] aa [λ] λ правильно? – user1193839