这种语言如何具有偶数个符号 ((0+1)(0+1))*

How this language has even number of symbols ((0+1)(0+1))*

我正在学习Automata的课程,可能作为初学者我错过了一些东西,我真的很困惑这个正则表达式,正如老师所说

it represents a language with all binary strings having even number of symbols

字母 Σ={0,1}

((0+1)(0+1 ))*

(0+1) saying union of 0 and 1

但我在这里很困惑让假设 第一个 (0+1) 给出 01,第二个 (0+1) 只给出 0,最后我们将两者连接起来 (010)* 并让它只出现一次,即 010

那怎么会有偶数个符号呢?需要一点点了解...

联合意味着一个或另一个,而不是两者。因此,0+1 要么是 0 要么是 1,但不会同时是两者。因此 (0+1)(0+1) 将导致 00、01、10 或 11。它们都具有偶数个符号。结果将随之而来。

给出的问题:((0+1)(0+1))*

让我们从最里面的括号开始 (0+1) 这个 匹配 0 或 1 而不是 01

'+'表示"or"运算符,这不是合取运算符。

重复两次因此 ((0+1)(0+1))01 or 10 or 00 or 11

'*'表示匹配0次或多次

因此,((0+1)(0+1))* 匹配 [NULL] or 01 or 10 or 00 or 11 or 0011 or 1100 or 1010 or 0110 ....so on