post on 28 Apr 2020 about 1275words require 5min
CC BY 4.0 (除特别声明或转载文章外)
如果这篇博客帮助到你,可以请我喝一杯咖啡~
由画图工具所限,以下均以 s0 作为起始状态,椭圆形作为接收状态。
flowchart LR
s0--"#epsilon;"-->s1
s1--a-->s1
s1--b-->s2
s2--a-->s2
s2--b-->s1
s0--"#epsilon;"-->s3
s3--b-->s3
s3--a-->s4
s4--b-->s4
s4--a-->s3
s1([s1])
s3([s3])
由 a 和 b 构成的字符串,a 或 b 出现了偶数次。
flowchart LR
s0--a-->s1
s0--b-->s2
s1--a-->s0
s1--b-->s3
s2--b-->s0
s2--a-->s3
s3--b-->s1
s3--a-->s2
s0([s0])
s1([s1])
s2([s2])
flowchart LR
s0--0-->s1
s0--1-->s0
s1--0-->s1
s1--1-->s2
s2--0-->s1
s2--1-->s3
s3--0-->s3
s3--1-->s3
s3([s3])
flowchart LR
s0--0-->s1
s0--1-->s0
s1--0-->s1
s1--1-->s2
s2--0-->s1
s2--1-->s3
s3--0-->s3
s3--1-->s3
s0([s0])
s1([s1])
s2([s2])
因为正则表达式和 DFA 是等价的,不妨设识别 $L(R)$ 的 DFA 为 $M$。由前两问容易发现,将 $M$ 中所有接收状态与非接收状态反转可得到 $M’$,它将识别 $L(R)$ 的补集 $L(R’)$。再次利用正则表达式与 DFA 的等价性可以证明并求得 $R’$。
z
、o
、/
(斜杠)3 个符号,该语言中的一个注释以一个/o
为开始标记,以此后出现的第一个 o/
为结束标记/o((o*z)|/)*o+/
flowchart LR
s0--/-->s1
s1--"o"-->s2
s2--z-->s2
s2--/-->s2
s2--"o"-->s3
s3--z-->s2
s3--"o"-->s3
s3--/-->s4
s4([s4])
Related posts