我给了2个DFA。 *表示最终状态, - >表示在字母表{a,b}上定义的初始状态。清晰的方式来表示DFA接受的语言?
1) - > A with a去A. - > A with b去* B。 * B与a去* B。 * B与B去 - > A。
该正则表达式是清楚: E = A * B(A * +(A * BA * BA *)*)
而且它接受的语言是L 1 = {瓦特以上{一,b} | w是b前面有任意数量的a,后面跟着任意数量的a,或者w是b前面有任意数量的a,后面跟随任意数量的bb,其中b的中间(中间bb),结束或开始的任意数量。 2) - > * A与b的关系为 - > * A.-> * A与a的关系为* B。 B与b去→ - > A. * B与a去C. C与a去C. C与b去C.
注意:A既是最终状态,也是初始状态。 B是最终状态。
现在,正则表达式,我得到的是这样的:
E = B *((AB)* + A(BB * A)*)
最后,这个DFA接受的语言是: L2 = {w over {a,b} | w是n 1,其次是k 01或a,其次是m 11^r0's其中n,km,r> = 0}
现在问题是,是否有一种更清晰的方式来表示语言L1和L2因为它看起来很丑。提前致谢。
define'cleaner' –
嘿贾森,只是在我可能错过了RE的一些模式。 –