形式语言与自动机 习题答案(部分)
- 格式:pdf
- 大小:83.58 KB
- 文档页数:8
1.写出表示下列语言的正则表达式。
(吴贤珺02282047)⑴{0, 1}*。
解:所求正则表达式为:(0+1)*。
⑵{0, 1}+。
解:所求正则表达式为:(0+1)+。
⑶{ x│x∈{0,1}+ 且x中不含形如00的子串 }。
解:根据第三章构造的FA,可得所求正则表达式为:1*(01+)*(01+0+1)。
⑷{ x│x∈{0,1}*且x中不含形如00的子串 }。
解:根据上题的结果,可得所求正则表达式为:ε+1*(01+)*(01+0+1)。
⑸{ x│x∈{0,1}+ 且x中含形如10110的子串 }。
解:所求正则表达式为:(0+1)*10110(0+1)*。
⑹ { x│x∈{0,1}+ 且x中不含形如10110的子串 }。
解:根据第三章的习题,接受x的FA为:要求该FA对应的正则表达式,分别以q0、q1、q2、q3、q4为终结状态考虑:q为终态时的正则表达式:(0*(11*0(10)*(ε+111*11*0(10)*)0)*)*q为终态时的正则表达式:0*1(1*(0(10)*111*1)*(0(10)*00*1)*)*1q为终态时的正则表达式:0*11*0((10)*(111*11*0)*(00*11*0)*)*2q为终态时的正则表达式:0*11*0(10)*1(11*11*0((10)*(00*11*0)*)*1)*3q为终态时的正则表达式:0*11*0(10)*11(1*(11*0((00*11*0)*(10)*)*11)*)*4将以上5个正则表达式用“+”号相连,就得到所要求的正则表达式。
⑺ { x│x∈{0,1}+ 且当把x看成二进制数时,x模5与3同余和x为0时,│x│=1且x≠0时,x的首字符为1}。
解:先画出状态转移图,设置5个状态q0、q1、q2、q3、q4,分别表示除5的余数是0、1、2、3、4的情形。
另外,设置一个开始状态q.由于要求x模5和3同余,而3模5余3,故只有q3可以作为终态。
Chapter 7 练习参考解答Exercise 7.1.3 从以下文法出发:S → 0A0 | 1B1 | BBA → CB → S | AC → S | εa) 有没有无用符号?如果有的话去除它们。
b) 去除ε-产生式。
c) 去除单位产生式。
d) 把该文发转化为乔姆斯基范式。
参考解答:a)没有无用符.b) 所有符号S,A,B,C都是可致空的,消去ε-产生式后得到新的一组产生式:S → 0A0 | 1B1 | BB | B | 00 | 11A → CB → S | AC → Sc) 单元偶对包括:(A,A),(B,B),(C,C),(S,S),(A,C),(A,S),(A,B),(B,A),(B,C),(B,S),(C,A),(C,B),(C,S),(S,A),(S,B),(S,C),消去单元产生式后得到新的一组产生式S → 0A0 | 1B1 | BB | B | 00 | 11A → CB → S | AC → SS → 0A0 | 1B1 | BB | 00 | 11A → 0A0 | 1B1 | BB | 00 | 11B → 0A0 | 1B1 | BB | 00 | 11C → 0A0 | 1B1 | BB | 00 | 11d)先消去无用符号C,得到新的一组产生式:S → 0A0 | 1B1 | BB | 00 | 11A → 0A0 | 1B1 | BB | 00 | 11B → 0A0 | 1B1 | BB | 00 | 11引入非终结符C,D,增加产生式C → 0和D → 1,得到新的一组产生式:S → CAC | DBD | BB | CC | DDA → CAC | DBD | BB | CC | DDB → CAC | DBD | BB | CC | DDC → 0D → 1引入非终结符E,F,增加产生式E → CA和F → DB,得到满足Chomsky范式的一组产生式:S → EC | FD | BB | CC | DDA → EC | FD | BB | CC | DDB → EC | FD | BB | CC | DDE → CAF → DBC → 0D → 1Exercise 7.2.1(b)用CFL泵引理来证明下面的语言都不是上下文无关的:b) {a n b n c i | i ≤n}。
1.写出表示下列语言的正则表达式。
(吴贤珺02282047)⑴{0, 1}*。
解:所求正则表达式为:(0+1)*。
⑵{0, 1}+。
解:所求正则表达式为:(0+1)+。
⑶{ x│x∈{0,1}+ 且x中不含形如00的子串 }。
解:根据第三章构造的FA,可得所求正则表达式为:1*(01+)*(01+0+1)。
⑷{ x│x∈{0,1}*且x中不含形如00的子串 }。
解:根据上题的结果,可得所求正则表达式为:ε+1*(01+)*(01+0+1)。
⑸{ x│x∈{0,1}+ 且x中含形如10110的子串 }。
解:所求正则表达式为:(0+1)*10110(0+1)*。
⑹ { x│x∈{0,1}+ 且x中不含形如10110的子串 }。
解:根据第三章的习题,接受x的FA为:要求该FA对应的正则表达式,分别以q0、q1、q2、q3、q4为终结状态考虑:q为终态时的正则表达式:(0*(11*0(10)*(ε+111*11*0(10)*)0)*)*q为终态时的正则表达式:0*1(1*(0(10)*111*1)*(0(10)*00*1)*)*1q为终态时的正则表达式:0*11*0((10)*(111*11*0)*(00*11*0)*)*2q为终态时的正则表达式:0*11*0(10)*1(11*11*0((10)*(00*11*0)*)*1)*3q为终态时的正则表达式:0*11*0(10)*11(1*(11*0((00*11*0)*(10)*)*11)*)*4将以上5个正则表达式用“+”号相连,就得到所要求的正则表达式。
⑺ { x│x∈{0,1}+ 且当把x看成二进制数时,x模5与3同余和x为0时,│x│=1且x≠0时,x的首字符为1}。
解:先画出状态转移图,设置5个状态q0、q1、q2、q3、q4,分别表示除5的余数是0、1、2、3、4的情形。
另外,设置一个开始状态q.由于要求x模5和3同余,而3模5余3,故只有q3可以作为终态。
Chapter 5 练习参考解答Exercise 5.1.2 (c) 下面的文法产生了正则表达式0*1(0+1)*的语言:εε|1|0|01B B B A A BA S →→→试给出下列串的最左推导和最右推导:c) 00011。
参考解答:一个最左推导:S ⇒lm A1B ⇒lm 0A1B ⇒lm 00A1B ⇒lm 000A1B ⇒lm 0001B ⇒lm 00011B ⇒lm 00011一个最右推导:S ⇒rm A1B ⇒rm A11B ⇒rm A11 ⇒rm 0A11⇒rm 00A11⇒rm 000A11 ⇒rm 00011! Exercise 5.1.3 证明任何正则语言都是上下文无关语言。
提示:通过对正则表达式中的运算符的数目进行归纳的方法来构造CFG 。
参考解答:对于任何正规表达式R ,归纳于R 中算符的数目n 构造如下产生式集合P(R),相应的开始符号为S(R):基础:n=0.(1)R 为ε,则任选非终结符A ,令P(R)只包含A →ε,以及S(R)为A ;(2)R 为φ,令P(R) 为空集;(3)R 为a ,则任选非终结符A ,令P(R)只包含A →a ,以及S(R)为A ; 基础:n>0.(1)R为R1+R2,则适修改非终结符的名字,使得P(R1)与P(R2)中的所有非终结符没有重名,任选不出现在P(R1)⋃P(R2)中的非终结符A,令P(R)= P(R1) ⋃P(R2)⋃{ A→ S(R1), A→ S(R2) },并且,令S(R)为A;(2)R为R1R2,则适修改非终结符的名字,使得P(R1)与P(R2)中的所有非终结符没有重名,任选不出现在P(R1)⋃P(R2)中的非终结符A,令P(R)= P(R1) ⋃P(R2)⋃{ A→ S(R1)S(R2) };并且,令S(R)为A;(3)R为R1*,任选不出现在P(R1) 中的非终结符A,令P(R)= P(R1) ⋃{ A→ AS(R1) , A→ε };并且,令S(R)为A.设L为正规语言,R为正规表达式,且有L=L(R). 令上下文无关文法G 的产生式集合为上述归纳过程所得到的P(R),以及G的开始符号为S(R). 可以归纳证明L(G)=L(R)=L.! Exercise 5.1.4 (选做)如果一个CFG的每个产生式的体都最多只有一个变元,并且该变元总在最右端,那么该CFG称做右线性的。
Chapter 3 练习参考解答Exercise 3.1.1 写出下列语言的正规表达式:c) The set of strings of 0' s and1' s with at most one pair of consecutive 1' s.c)最多包含两个相继的 1 的所有0, 1 字符串的集合.参考解答:该题的翻译有二义性(Sorry ).1)按原题意的解法对不包含相继的 1 的所有0, 1 字符串的集合,正规表达式可以为:1*(0+01)* 或(0+10 )*1*;包含最多一对相继的1,正规表达式可以为:(0+10)*11(0+01)*;所以,结果正规表达式可以为:1*(0+01)* + (0+10 )*11(0+01)2)若理解为11 可以出现多次的解法正规表达式可以为:1*(0+01+011 )* 或(0+10+110)*1*;等等Exercise 3.1.2 写出下列语言的正规表达式:b) 0 的个数能够被 5 整除的所有0, 1 字符串的集合. 参考解答:该题问题不多.正规表达式可以为:(1*01*01*01*01*01* )*Exercise 3.2.1(2)c)给出所有正规表达式R(i2j), 并尽可能简化之.d)给出该自动机的语言的一个正规表达式.参考解答:该题问题反映较多的是关于正规表达式的简化. 本科程较侧重原理,技术方面不够细致,因此对于“最简“的正规表达式没有作明确的规定,也没有类似于命题演算中有关”范式“的讨论.同学们在做题时除了应用有关定律外, 还可以自己总结出一些规律,比如一个表达式的语言 R 是另一个表达式S 所代 表语言的一个子集,则对于 R+S 就可以消去R ,例如 +1*可以简化为1*.再 如,在已做过的习题中出现的公式,例如Exercise3.4.1(g)我们可以验证(汁R)*= R*,因此 (+1)*可以简化为1*.综合已阅过的作业,推荐以下结果:C) R (121)= 1*+1*0 ( +11*0)*11* = 1*+1*0(11*0)*11*R (1 2 = 1*0+1*0 ( ;+11*0)* ( ;+11*0) = 1*0(11*0)*R (123)= * +1*0 2+11*0)*0 = 1*0(11*0)*0R (221)= 11* + ( +11*0) ( +11*0)*11* = (11*0)*11* R (222)= +11*0 + ( +11*0) ( ;+11*0)* ( ;+11*0) = (11*0)*R (223)= 0 + ( +11*0) ( +11*0)*0 = (11*0)*0R (321) = * + 1 (<+11*0)*11* =1(11*0)*11*R (322)= 1 + 1 ( +11*0)* ( ;+11*0) =1(11*0)*R (323)= ; + 0 + 1 ( +11*0)* 0 = ; + 0 + 1(11*0)*0d)该自动机的语言的一个正规表达式为R (133) =1*0(11*0)*0 +1*0(11*0)*0 ( ; + 0 + 1(11*0)*0)* ( ; + 0 + 1(11*0)*0)=1*0(11*0)*0 (0 + 1(11*0)*0)*Exercise 3.2.3 使用状态消去技术,将如下 DFA 转化为一个正规表达式.参考解答:该题问题不多,状态消去的次序不同,结果形式上可能有所不同,但 相互之间是等价的.以下是一个解法:/1+0(01+10*11)*(00+10*10) Start 5结果正规表达式可以为:(1+0(01+10*11)*(00+10*10))* 原状态图:消去状态r :消去状态s :1Start 0Exercise 324 将下列正规表达式转化为带 &转移的NFA.b) (0+1)01 c) 00(0+1)*参考解答:若严格按照所介绍的算法构造,则结 果如下:b)Exercise 3.4.1验证下列包含正规表达式的等式 c) (RS) T = R (ST) .g)(+R)* = R* . 参考解答:c)将两个表达式具体化,将R 替换为a ,将S 替换为b.(RS)T 具体化为(ab)a ,R(ST)具体化为 a(ba),而 L((ab)a)=L(a(ba))={abc}, 所以原等式成立;g)将两个表达式具体化,将R 替换为a.(+R)* 具体化为(;+a)*,R*具体化为 a*,而 L(( +a)*)=L(a*)={ ,a ,aa,aaa,…, (注:严格证明L(( ;+a)*)=L(a*),可以在归纳证明:对任意k>=0,{;,a}k ={a}k 的基础上进行),所以原等式成立;Exercise 342证明或否证下列关于正规表达式的命题 b) (RS+R)*R = R (SR+R)*.d) (R+S)*S = (R*S)* .Start参考解答:b)将两个表达式具体化,将R替换为a,将S替换为b.(RS+R)*R 具体化为(ab+a)*a,R (SR+R)*具体化为a(ba+a)*,可以证明L((ab+a)*a)=L(a(ba+a)*) (注:同上,可以先归纳证明:对任意k>=0,{ab,a}k{a}={a}{ba ,a}k,而由连接运算对-运算的分配律,—k —k 可知L((ab+a)*a)= *0,1,2, -({ab,a} {a}), L(a(ba+a)*)= k=o,1,2, ・({a}{ba,a}),由此证得L((ab+a)*a)=L(a(ba+a)*)),所以原等式成立;g)将两个表达式具体化,将R替换为a,将S替换为b.(R+S)*S 具体化为(a+b)*b,(R*S)* 具体化为(a*b)*,由于〉L((a*b)*),而>■' L((a*b)*),所以原等式不成立。
Chapter 6 练习参考解答Exercise 6.2.1 设计PDA 使它接受下列语言,你可以使用以终结状态方式接受或者以空栈方式接受中方便的一个。
b) 所有由0,1 构成的,并且任何前缀中 1 的个数都不比0 的个数多的串的集合。
c) 所有0,1 个数相同的0,1 串的集合。
参考解答:b)构造以终态方式接受的PDA P = (Q,艺,r , S , q o, Z o, F),其中Q={q o};状态q o表示当前扫描过的输入串的任何前缀中1的个数不比0的个数多;工={0 , 1};r ={ Z o, X};下推栈中,X的个数表示当前扫描过的输入串中o的个数比1 的个数多多少;F={q o};S (q o,o, Z o)={( q o,X Z o)}, S (q o,o, X)={( q o,X X)}, S (q o,1, X)={( qo, )}.c)构造以空栈方式接受的PDA P = (Q, 2 , r , S , q o, Z o),其中Q={q o, q i };状态q o表示当前扫描过的输入串的任何前缀中o的个数不少于1 的个数,状态q1 表示当前扫描过的输入串的任何前缀中 1 的个数不少于o 的个数;2 ={o, 1};r ={ Z o, X };下推栈中,X的个数表示当前扫描过的输入串中o的个数比i 的个数或 1 的个数比o 的个数多多少;S(q o,o, Z o)={( q o,X Z o)}, S(q o,1, Z o)={( q1,X Z o)};S (q i,O, Z o)={( q o,X Z o)}, S (q i,1, Z o)={( q i,X Z o)};S (q o,O, X)={( q o,X X)}, S (q o,1, X)={( q o, )};S(q1,o, X)={( q 1, )},S(q1,1, X)={( q 1, X X)} ;S(q o, , Z o)={( q o, )},S(q1, , Z o)={( q1, )}.Exercise 6.3.2 把下面的文法S aAAA aS | bS | a转换成以空栈方式接受同样语言的PDA 。
形式语言与自动机理论_哈尔滨工业大学中国大学mooc课后章节答案期末考试题库2023年1.令字母表【图片】, 则克林闭包【图片】中元素的长度为?参考答案:只能是有限的2.由字符0和1构成且含有奇数个1的DFA,至少需要几个状态?参考答案:23.双栈PDA可以接受任意图灵机接受的语言。
参考答案:正确4.由某字母表【图片】中的字符构成的全部正则表达式的集合,也可以看做是一个语言,则该语言为:参考答案:上下文无关语言5.由字符0和1构成且含有奇数个1和偶数个0的DFA,至少需要几个状态?参考答案:46.字符串的长度可以是任意的,那么也可以是无穷长的。
参考答案:错误7.设【图片】和【图片】是字母表【图片】上的任意语言且【图片】是无穷的,则两个语言的连接【图片】一定是无穷的。
参考答案:错误8.每一个有穷的语言都是正则语言。
参考答案:正确9.任何正则语言都是上下文无关语言。
参考答案:正确10.任意有穷集合的克林闭包一定是无穷集合。
参考答案:错误11.递归可枚举语言是可判定的语言。
参考答案:错误12.任何有限的语言都是上下文无关语言。
参考答案:正确13.NFA处于某个状态q且输入某字符a时,如果状态转移函数未定义,则NFA会:参考答案:停止自动机的运行,并拒绝该串。
14.有穷自动机有了空转移(不消耗输入串的状态跳转), 改变了它识别语言的能力。
参考答案:错误15.对同一个语言,可能存在两个不同的有穷自动机识别。
参考答案:正确16.带有空转移的非确定有穷自动机中,对于某一个状态,是否可以同时存在“对某字符a的非确定性”和“空转移”?参考答案:可以。
17.图灵机是算法的好模型。
参考答案:错误18.确定的图灵机与非确定的图灵机等价。
参考答案:正确19.由字符0和1构成且含有偶数个1的DFA,至少需要几个状态?参考答案:220.如果一个语言是不可判定的,那么它的补也一定是不可判定的参考答案:错误21.确定的有穷自动机中,“确定的”含义是:参考答案:状态转移是确定的22.由字符0和1构成且长度为偶数的全部字符串的DFA,至少需要几个状态?参考答案:223.集合的克林闭包与正比包一定不相等参考答案:错误24.设【图片】是字母表【图片】上的任意语言,则语言【图片】的闭包【图片】一定是无穷的。
形式语言与自动机答案蒋宗礼【篇一:形式语言第四章参考答案(蒋宗礼)】p> 解:所求正则表达式为:(0+1)*。
+⑵ {0, 1}。
解:所求正则表达式为:(0+1)+。
⑶ { x│x∈{0,1}且x中不含形如00的子串 }。
解:根据第三章构造的fa,可得所求正则表达式为:1*(01+)*(01+0+1)。
⑷ { x│x∈{0,1}*且x中不含形如00的子串 }。
++ +q1为终态时的正则表达式:0*1(1*(0(10)*111*1)*(0(10)*00*1)*)* q2为终态时的正则表达式:0*11*0((10)*(111*11*0)*(00*11*0)*)*q3为终态时的正则表达式:0*11*0(10)*1(11*11*0((10)*(00*11*0)*)*1)* q4为终态时的正则表达式:0*11*0(10)*11(1*(11*0((00*11*0)*(10)*)*11)*)*将以上5个正则表达式用“+”号相连,就得到所要求的正则表达式。
⑺ { x│x∈{0,1}且当把x看成二进制数时,x模5与3同余和x为0时,│x│=1且x≠0时,x的首字符为1}。
解:先画出状态转移图,设置5个状态q0、q1、q2、q3、q4,分别表示除5的余数是0、1、2、3、4的情形。
另外,设置一个开始状态q.由于要求x模5和3同余,而3模5余3,故只有q3可以作为终态。
由题设,x=0时,│x│=1,模5是1,不符合条件,所以不必增加关于它的状态。
下面对每一个状态考虑输入0和1时的状态转移。
q: 输入1,模5是1,进入q1。
+q0: 设x=5n。
输入0,x=5n*2=10n,模5是0,故进入q0输入1,x=5n*2+1=10n+1,模5是1,故进入q1q1:设x=5n+1。
输入0,x=(5n+1)*2=10n+2,模5是2,故进入q2输入1,x=(5n+1)*2+1=10n+3,模5是3,故进入q3 q2:设x=5n+2。
北京邮电大学——形式语言与自动机课后作业答案第二章4.找出右线性文法,能构成长度为1至5个字符且以字母为首的字符串。
答:G={N,T,P,S}其中N={S,A,B,C,D} T={x,y} 其中x∈{所有字母} y∈{所有的字符} P如下: S→x S→xA A→y A→yBB→y B→yC C→y C→yD D→y6.构造上下文无关文法能够产生L={ω/ω∈{a,b}*且ω中a的个数是b的两倍}答:G={N,T,P,S}其中N={S} T={a,b} P如下:S→aab S→aba S→baaS→aabS S→aaSb S→aSab S→SaabS→abaS S→abSa S→aSba S→SabaS→baaS S→baSa S→bSaa S→Sbaa7.找出由下列各组生成式产生的语言(起始符为S)(1)S→SaS S→b(2)S→aSb S→c(3)S→a S→aE E→aS答:(1)b(ab)n /n≥0}或者L={(ba)n b/n≥0}(2) L={a n cb n /n≥0}(3)L={a2n+1 /n≥0}第三章1.下列集合是否为正则集,若是正则集写出其正则式。
(1)含有偶数个a和奇数个b的{a,b}*上的字符串集合(2)含有相同个数a和b的字符串集合(3)不含子串aba的{a,b}*上的字符串集合答:(1)是正则集,自动机如下(2) 不是正则集,用泵浦引理可以证明,具体见17题(2)。
(3) 是正则集先看L’为包含子串aba的{a,b}*上的字符串集合显然这是正则集,可以写出表达式和画出自动机。
(略)则不包含子串aba的{a,b}*上的字符串集合L是L’的非。
根据正则集的性质,L也是正则集。
4.对下列文法的生成式,找出其正则式(1)G=({S,A,B,C,D},{a,b,c,d},P,S),生成式P如下:S→aA S→BA→abS A→bBB→b B→cCC→D D→bBD→d(2)G=({S,A,B,C,D},{a,b,c,d},P,S),生成式P如下:S→aA S→BA→cC A→bBB→bB B→aC→D C→abBD→d答:(1) 由生成式得:S=aA+B ①A=abS+bB ②B=b+cC ③C=D ④D=d+bB ⑤③④⑤式化简消去CD,得到B=b+c(d+bB)即B=cbB+cd+b =>B=(cb)*(cd+b) ⑥将②⑥代入①S=aabS+ab(cb)*(cd+b)+(cb)*(cd+b) =>S=(aab)*(ab+ε)(cb)*(cd+b) (2) 由生成式得:S=aA+B ①A=bB+cC ②B=a+bB ③C=D+abB ④D=dB ⑤由③得 B=b*a ⑥将⑤⑥代入④ C=d+abb*a=d+ab+a ⑦将⑥⑦代入② A=b+a+c(d+b+a) ⑧将⑥⑧代入① S=a(b+a+c(d+ab+a))+b*a=ab+a+acd+acab+a+b*a5.为下列正则集,构造右线性文法:(1){a,b}*(2)以abb结尾的由a和b组成的所有字符串的集合(3)以b为首后跟若干个a的字符串的集合(4)含有两个相继a和两个相继b的由a和b组成的所有字符串集合答:(1)右线性文法G=({S},{a,b},P,S)P: S→aS S→bS S→ε(2) 右线性文法G=({S},{a,b},P,S)P: S→aS S→bS S→abb(3) 此正则集为{ba*}右线性文法G=({S,A},{a,b},P,S)P: S→bA A→aA A→ε(4) 此正则集为{{a,b}*aa{a,b}*bb{a,b}*, {a,b}*bb{a,b}*aa{a,b}*}右线性文法G=({S,A,B,C},{a,b},P,S)P: S→aS/bS/aaA/bbBA→aA/bA/bbCB→aB/bB/aaCC→aC/bC/ε7.设正则集为a(ba)*(1)构造右线性文法(2)找出(1)中文法的有限自 b动机答:(1)右线性文法G=({S,A},{a,b},P,S)P: S→aA A→bS A→ε(2)自动机如下:(p2是终结状态)9.对应图(a)(b)的状态转换图写出正则式。