这是我的教科书“Introduction to theory of Computation
”中的一个例子。
鉴于字母∑ as{0,1}
,
{w|every 0 in w is followed by atleast one 1}}
它的正则表达式显示为(01+)*. 1+
表示只有一个1的实例。现在我理解的是(01+)*
意味着像0101010101010101....
这样的字符串如果我有一个字符串怎么办? 11111101 or 011111111
或仅1
这些字符串确实符合给定的标准。但正则表达式(01+)*
不会生成它们。
Secondly for `{w|w starts and ends with same symbol}` the expression is given as `0∑*0 U 1∑*1 U 0 U 1.`
据我所知,两件事的结合意味着第一个或第二个 OR BOTH 。如果我为0∑*0
取一个字符串01110,为10001 1∑*1
取另一个字符串,然后取这两个0111010001
的并集,则联合字符串DOESNOT
以相同的符号开头和结尾。这是否意味着联盟不能将两者结合起来或表达不正确?
答案 0 :(得分:1)
1+
表示'一个或多个1'。因此,它生成1,11,111等。所以正则表达式(01+)*
实际上生成了一个字符串,其中“每0后跟一个或多个1,字符串中的第一个符号不是1”。
要获得{w|every 0 in w is followed by atleast one 1}
,正则表达式会略有不同。它将是1*(01+)*
在第二个问题中,你所采取的是串联。与01110
联网的10001
为0111010001
。两个集合的联合是包含两个集合的所有元素的集合