【问题标题】:How this language has even number of symbols ((0+1)(0+1))*这种语言如何具有偶数个符号 ((0+1)(0+1))*
【发布时间】:2015-05-20 18:17:07
【问题描述】:

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

它表示一种语言,所有二进制字符串都有偶数个 符号

字母Σ={0,1}

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

(0+1) 表示 0 和 1 的并集

但我在这里感到困惑让我们假设 第一个 (0+1) 给出 01,第二个 (0+1) 只给出 0,然后最后我们连接两个具有 (010)* 并让它只出现一次,即 010

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

【问题讨论】:

    标签: regex computation-theory


    【解决方案1】:

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

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

    '+' 表示“或” 运算符,这不是合取运算符。

    这会重复两次,因此 ((0+1)(0+1)) 匹配 01 或 10 或 00 或 11

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-28
        • 2021-03-24
        • 1970-01-01
        • 2018-09-26
        • 1970-01-01
        • 2019-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多