Ed
há 4 dias
Para resolver essa questão, precisamos entender que a linguagem descrita é composta por todas as cadeias que têm um número par de 'a's. Vamos analisar cada uma das expressões regulares propostas: A) \((a b* b b*)*\) - Essa expressão não garante que o número de 'a's seja par, pois pode gerar cadeias com um número ímpar de 'a's. B) \(((a)*|b*)*\) - Essa expressão permite qualquer número de 'a's e 'b's, incluindo um número ímpar de 'a's, portanto não é a correta. C) \((b*|(a)*|b*)*\) - Essa expressão também não garante que o número de 'a's seja par, pois permite qualquer combinação de 'a's e 'b's. D) \(((b*ab*ab*)* a a)\) - Essa expressão garante que sempre que houver um 'a', haverá outro 'a' para formar pares, portanto, o número de 'a's será sempre par. E) \((a|b)*\) - Essa expressão permite qualquer combinação de 'a's e 'b's, incluindo um número ímpar de 'a's. Após essa análise, a expressão que gera a linguagem onde o número de 'a's é par é a alternativa D: \(((b*ab*ab*)* a a)\).