2017-01-22 87 views
-2

我有两个问题。这些正则表达式是相同的吗?正则表达式 - 它们是相同的正则表达式?

(1)的b *(AB *)*和(b * a)个* b *表

(2)的b *(AAAB *)*和(b * AAA)* b *表

我觉得他们都创造了具有世界回文的语言。是对的吗?在第一个中,a和b都是零或无限。第二个是一样的。字符串aaa在两者中都是必须的,而b是零或无限的。

我对不对?

+1

交叉发表:http://stackoverflow.com/q/41797205/781723,http://math.stackexchange.com/q/2109538/14578,http://cs.stackexchange.com/q/69162/755。请[不要在多个网站上发布相同的问题](http://meta.stackexchange.com/q/64068)。每个社区都应该诚实地回答问题,不要浪费任何人的时间。 –

+0

你有趣的人啊哈 – snnlankrdsm

回答

1

在这两种情况下,两个正则表达式都不相同(它们是不同的正则表达式),但它们都是do描述的是相同的语言。所以这两个问题的答案(从你的练习?)是“是”。

在第一种情况下,正则表达式描述了的任何字符串的ab的语言。在第二种情况下,您将获得所有a以三倍出现的语言,如组合aaa。第一种语言也用正则表达式(a|b)*(或(a + b)*(a U b)*,我不知道您的书使用什么表示法)来描述,第二种语言也用正则表达式(aaa|b)*来描述。

在这两种情况下,如果反转元素,语言都保持不变,因此,如果反转描述它们的正则表达式,它们也保持不变。

回文是自己保持不变,如果你反转它们。但是这两种语言的元素都是而不是回文,例如aaab这个词,因为aaab!= baaa。所以在这里讨论回文不是正确的论点。

+0

谢谢!很好的解释。 – snnlankrdsm