形式语言与自动机理论蒋宗礼第三章参考答案
- 格式:doc
- 大小:2.90 MB
- 文档页数:31
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 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)*),所以原等式不成立。
形式语言与自动机蒋宗礼答案形式语言与自动机蒋宗礼答案【篇一:形式语言第四章参考答案(蒋宗礼)】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。
形式语言与自动机答案蒋宗礼【篇一:形式语言第四章参考答案(蒋宗礼)】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。
1•写出表示下列语言的正则表达式。
(吴贤环02282047)(1){0, 1}*。
解:所求正则表达式为:(0+1)*。
(2){0, 1}\解:所求正则表达式为:(0+1几(3){ x | xe {0, 1甘且x中不含形如00的子串}o解:根据第三章构造的FA,可得所求正则表达式为:1*(0广)*(01+0+1)。
(4){ X I xe {0, 1}*且X中不含形如00的子串}。
解:根据上题的结果,可得所求正则表达式为:£+1*(0广)*(01+0+1)。
(5){ x | xG{0, 1}+且x中含形如10110的子串}。
解:所求正则表达式为:(0+1)*10110(0+1)*。
(6){ x | xe {0, 1}^且x中不含形如10110的子串}。
解:根据第三章的习题,接受x的FA为:要求该FA对应的正则表达式,分别以q。
、q】、q2> q3> q(为终结状态考虑:qo为终态时的正则表达式:(0*( 11 *0( 10)*( £ +111*11*0(10)*)0)*)*qi 为终态时的正则表达式:0*1(1*(0(10)*111*1)*(0(10)*00*1)*)* q?为终态时的正则表达式:0* 11*0(( 10)*( 111*11 *0)*(00* 11 *0)*)*q3 为终态时的正则表达式:0* 11 *0( 10)* 1 (11 * 11 *0(( 10)*(00* 11 *0)*)* 1 )*q,i 为终态时的正则表达式:0* 11 *0( 10)* 11 (1 *( 11 *0((00* 11 *0)*( 10)*)* 11)*)* 将以上5个正则表达式用“ + ”号相连,就得到所要求的正则表达式。
(7){ x | xe {0, 1广且当把X看成二进制数时,x模5与3同余和X为0时,I x I =1 且xHO时,x的首字符为1}。
解:先画出状态转移图,设置5个状态q。
形式语言与自动机形式语言与自动机理论-蒋宗礼-第三章参考答案导读:就爱阅读网友为您分享以下“形式语言与自动机理论-蒋宗礼-第三章参考答案”的资讯,希望对您有所帮助,感谢您对的支持!因此我们只需要证明对任何的2NFA M1?(Q1,?,?1,F1,q0),都存在FAM2?(Q2,?,?2,F2,q0)与之等价。
对于任何的2NFA M1?(Q1,?,?1,F1,q0),构造FA M2?(Q2,?,?2,F2,q0),按三个方式构造?2:1.如果q?Q1,a??,?1(q,a)?{p,R},则?2(q,a)?p;2.如果q?Q1,a??,?1(q,a)?{p,S},则如果??1(p,a)?{o,R},则?2(q,a)?o;如果??1(p,a)?{o,S},则重复第二步;如果??1(p,a)?{o,L},则对于集合A = {r|b?Q1,?1(r,b)?(o,R)},?2(q,a)?r,r?A。
3.如果q?Q1,a??,?1(q,a)?{p,L},则设集合 A = {r|b?Q1,?1(r,b)?(p,R)},?2(q,a)?r,r?A*************************************************** ****************************28.证明定理3-8:Moore机与Mealy机等价(郭会02282015)证明:不妨设Moore机M1=(Q1,?,?,?1,?1,q01),Mealy机M2=(Q2,?,?,?2,?2,q02),则根据Moore机和Mealy机等价的定义知,必须证明:T1(x)??1(q0)T2(x),其中T1(x)和T2(x)分别表示M1和M2关于x的输出。
??Moore机M1,?Mealy机M2,使M2与M1等价(1)构造M2,?2??1,q02?q01,Q2?Q1?q?Q1?{q01},?1(q)?a,?q'?Q1且?b??,?1(q',b)=q,就构造?2(q',b)=a(2)证明?x??*,?1(q0)T2(x)?T1(x)不妨设x?x1x2……xn,则?i?N,(i?1,2……n)则M1的输出为:T1(x)??1(q0)?1(?1(q0,x1))……?1(?1((…?1(q0,x1),x2)…),xn)由题意可知?1(q0,x1),?1(?1(q0,x1),x2),…,?1(……?1 (?1(q0,x1),x2) xn) 均为Moore机中的状态,由(1)中的构造假设知,M2的输出为:T2(x)??2(q0,x1)?2(?2(q0,x1),x2)…?2(……?2(?2(q0,x1),x2) ? ?1(q0,x1)?1(?1(q0,x1),x2)…?1(……?1(?1(q0,x1),x2) xn) xn) ?T1(x)??1(q0)T2(x)??Mealy机M2,?Moore机M1,使M1与M2等价(1)构造M1,q01?q02Q1?Q2?{qij|??2(qi,a)?qj,其中qi,qj?Q2,a??}?1?{?|?(qi,a)?qij,?(qij,?)?qj其中?2(qi,a)?qj}?1?{?|?1(qi,a)?qij,?1(qij,?)?qj,?(qij)??2(qi,a) }(2)证明?x??*,T1(x)=?1(q0)T2(x)不妨设x?x1x2……xn,则?i?N,(i?1,2……n)则M1的输出为:T2(x)??2(?2(q0,x1))……?2(?2((…?2(q0,x1),x2)…),xn) 由题意可知?2(q0,x1),?2(?2(q0,x1),x2),…,?2(……?2 (?2(q0,x1),x2) xn) 均为Mealy机中的状态,由(1)中的构造假设知,M1的输出为:T1(x)??1(q0)?1(?2(q0,x1))?1(?1(q0,x1),x2)…?1(……?1(?1(q 0,x1),x2) xn)??1(q0)?2(?2(q0,x1))……?2(?2((…?2(q0,x1),x2)…),xn) ?T1(x)??1(q0)T2(x)综上所述,Moore机与Mealy机等价第三章作业答案1.已知DFA M1与M2如图3-18所示。
形式语言与自动机理论(第2版)作者:蒋宗礼、姜守旭第1章绪论11.1集合的基础知识21.1.1集合及其表示21.1.2集合之间的关系51.1.3集合的运算61.2关系121.2.1二元关系121.2.2等价关系与等价类131.2.3关系的合成141.2.4递归定义与归纳证明151.2.5关系的闭包181.3图191.3.1无向图191.3.2有向图211.3.3树231.4语言241.4.1什么是语言241.4.2形式语言与自动机理论的产生与作用25 1.4.3基本概念281.5小结35习题35第2章文法422.1启示432.2形式定义482.3文法的构造582.4文法的乔姆斯基体系682.5空语句792.6小结82习题82第3章有穷状态自动机863.1语言的识别863.2有穷状态自动机893.3不确定的有穷状态自动机1023.3.1作为对DFA的修改1023.3.2NFA的形式定义1043.3.3NFA与DFA等价1063.4带空移动的有穷状态自动机1103.5FA是正则语言的识别器1153.5.1FA与右线性文法1153.5.2FA与左线性文法1203.6FA的一些变形1223.6.1双向有穷状态自动机1223.6.2带输出的FA1233.7小结125习题126第4章正则表达式1314.1启示1314.2正则表达式的形式定义1334.3正则表达式与FA等价1354.3.1正则表达式到FA的等价变换1354.3.2正则语言可以用正则表达式表示1444.4正则语言等价模型的总结1504.5小结152习题153第5章正则语言的性质1565.1正则语言的泵引理1565.2正则语言的封闭性1625.3Myhill Nerode 定理与DFA的极小化170 5.3.1Myhill Nerode 定理1705.3.2DFA的极小化1805.4关于正则语言的判定算法1895.5小结190习题191第6章上下文无关语言1946.1上下文无关文法1956.1.1上下文无关文法的派生树1956.1.2二义性2026.1.3自顶向下的分析和自底向上的分析2056.2上下文无关文法的化简2076.2.1去无用符号2086.2.2去ε 产生式2126.2.3去单一产生式组2166.3乔姆斯基范式2196.4格雷巴赫范式2236.5自嵌套文法2296.6小结230习题230第7章下推自动机2357.1基本定义2357.2PDA与CFG等价2427.2.1PDA用空栈接受和用终止状态接受等价243 7.2.2PDA与CFG等价2467.3小结257习题257第8章上下文无关语言的性质2608.1上下文无关语言的泵引理2608.2上下文无关语言的封闭性2678.3上下文无关语言的判定算法2738.3.1L空否的判定2738.3.2L是否有穷的判定2748.3.3x是否为L的句子的判定2768.4小结278习题278第9章图灵机2809.1基本概念2819.1.1基本图灵机2829.1.2图灵机作为非负整函数的计算模型2899.1.3图灵机的构造2939.2图灵机的变形3009.2.1双向无穷带图灵机3009.2.2多带图灵机3049.2.3不确定的图灵机3069.2.4多维图灵机3089.2.5其他图灵机3109.3通用图灵机3139.4几个相关的概念3159.4.1可计算性3159.4.2P与NP相关问题3169.5小结316习题317第10章上下文有关语言32010.1图灵机与短语结构文法的等价性32010.2线性有界自动机及其与上下文有关文法的等价性323 10.3小结325习题325附录A教学设计327附录B缩写符号338词汇索引340参考文献348。
编译原理蒋宗礼课后答案
编译原理练习
一、对下列语言集合设计CFG, ={a,b}
(1)L={a n b m a2n|n,m>=0}。
(2)所有非空符号串,其首尾字符相同。
(3)所有a的个数大于b的个数的符号串。
(4)由a,b组成的回文串。
二、(1)构造一个能识别所有除以5余2的二进制数的DFA
(2)假设有一自动售货机,接收1元、2元、3元的硬币,出售2元和4元的商品,多投不找零,请构造能实现此功能有限自动机。
三、对于文法G[S],(1)给出至少两个理由说明它不是LL(1)文法。
(2)将文法改写为LL(1)文法,并计算改造后文法的各非终结符的First和Follow集合,构造其预测分析表。
S→bAb|bBa
A→aS|CB
B→b|BC C→c|cC。
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可以作为终态。
ij求索-百度文库2.1回答下面的问题:(周期律02282067)(1)在文法中,终极符号和非终极符号各起什么作用?/终结符号是一个文法所产生的语言中句子的中出现的字符,他决上了一个文法的产生语言中字符的范围。
/ 非终结符号又叫做一个语法变量,它表示一个语法范畴,文法中每一个产生式的左部至少要还有一个非终结符号,(二,三型文法要求更严,只允许左部为一个非终结符号)他是推导或归约的核心。
(2)文法的语法范畴有什么意义?开始符号所对应的语法范畴有什么特殊意义?/ 文法的非终结符号A所对应的语法范畴代表着一个集合L (A),此集合由文法产生式中关于A的产生式推导实现的/ 开始符号所对应的语法范畴则为文法G = (V, T, P, S}所产生的语言L (G)*={ vvl w e 厂且S =► w }(3)在文法中,除了的变量可以对应一个终极符号行的集合外,按照类似的对应方法,一个字符串也可以对应一个终极符号行集合,这个集合表达什么意义?/字符串对应的终极符号行集合表示这个字符串所能推导到的终极字符串集合,为某个句型的语言。
(4)文法中的归约和推导有什么不同?/ 推导:文法G = {V, T, P, S},如果则称gd在G中推导岀了汐5。
/ 归约:文法G={V, T, P, S},如果则称汐5在G中归约到*7》。
/ 这他们的左义,我个人理解两个槪念从不同角度看待文法中的产生式,推导是自上而下(从产生式的左边到右边),而归约是自下而上(从产生式的右边到左边),体现到具体实际中,如编译中语法分析时语法树的建立,递归下降,LL (1)等分析法采用自开始符号向下推导识別输入代码生成语法树,对应的LR (1), LALR等分析法则是采用自输入代码(相当于文法中语言的句子)自底向上归约到开始符号建立语法树,各有优劣。
(5)为什么要求左义语言的字母表上的语言为一个非空有穷集合?/ 菲空:根据字母表幕的立义:工°={£},£为字母表中0个字符组成的。
第三章作业答案1.已知DFA M1与M2如图3-18所示。
(敖雪峰 02282068)(1) 请分别给出它们在处理字符串1011001的过程中经过的状态序列。
(2) 请给出它们的形式描述。
Sq q1图3-18 两个不同的DFA解答:(1)M1在处理1011001的过程中经过的状态序列为q 0q 3q 1q 3q 2q 3q 1q 3; M2在处理1011001的过程中经过的状态序列为q 0q 2q 3q 1q 3q 2q 3q 1;(2)考虑到用形式语言表示,用自然语言似乎不是那么容易,所以用图上作业法把它们用正则表达式来描述:M1: [01+(00+1)(11+0)][11+(10+0)(11+0)]* M2: (01+1+000){(01)*+[(001+11)(01+1+000)]*}******************************************************************************* 2.构造下列语言的DFA ( 文婧 02282085 )(1){0,1}*,1(2){0,1}+,1(3){x|x {0,1}+且x 中不含00的串}(设置一个陷阱状态,一旦发现有00的子串,就进入陷阱状态)(4){ x|x∈{0,1}*且x中不含00的串}(可接受空字符串,所以初始状态也是接受状态)(5){x|x∈{0,1}+且x中含形如10110的子串}(6){x|x∈{0,1}+且x中不含形如10110的子串}(设置一个陷阱状态,一旦发现有00的子串,就进入陷阱状态)(7){x|x∈{0,1}+且当把x看成二进制时,x模5和3同余,要求当x为0时,|x|=1,且x≠0时,x的首字符为1 }1.以0开头的串不被接受,故设置陷阱状态,当DFA在启动状态读入的符号为0,则进入陷阱状态2.设置7个状态:开始状态q s,q0:除以5余0的等价类,q1:除以5余1的等价类,q2:除以5余2的等价类,q3:除以5余3的等价类,q4:除以5余4的等价类,接受状态q t(8){x|x∈{0,1}+且x的第十个字符为1}(设置一个陷阱状态,一旦发现x的第十个字符为0,进入陷阱状态)(9){x|x∈{0,1}+且x以0开头以1结尾}(设置陷阱状态,当第一个字符为1时,进入陷阱状态)(10){x|x∈{0,1}+且x中至少含有两个1}(11){x|x ∈{0,1}+且如果x 以1结尾,则它的长度为偶数;如果x 以0结尾,则它的长度为奇数}可将{0,1}+的字符串分为4个等价类。
第三章作业答案1.已知DFA M1与M2如图3-18所示。
(敖雪峰 02282068)(1) 请分别给出它们在处理字符串1011001的过程中经过的状态序列。
(2) 请给出它们的形式描述。
Sq q1图3-18 两个不同的DFA解答:(1)M1在处理1011001的过程中经过的状态序列为q 0q 3q 1q 3q 2q 3q 1q 3; M2在处理1011001的过程中经过的状态序列为q 0q 2q 3q 1q 3q 2q 3q 1;(2)考虑到用形式语言表示,用自然语言似乎不是那么容易,所以用图上作业法把它们用正则表达式来描述:M1: [01+(00+1)(11+0)][11+(10+0)(11+0)]*M2: (01+1+000){(01)*+[(001+11)(01+1+000)]*}******************************************************************************* 2.构造下列语言的DFA( 陶文婧 02282085 ) (1){0,1}*,1(2){0,1}+,1(3){x|x {0,1}+且x 中不含00的串}(设置一个陷阱状态,一旦发现有00的子串,就进入陷阱状态)(4){ x|x∈{0,1}*且x中不含00的串}(可接受空字符串,所以初始状态也是接受状态)(5){x|x∈{0,1}+且x中含形如10110的子串}(6){x|x∈{0,1}+且x中不含形如10110的子串}(设置一个陷阱状态,一旦发现有00的子串,就进入陷阱状态)(7){x|x∈{0,1}+且当把x看成二进制时,x模5和3同余,要求当x为0时,|x|=1,且x≠0时,x的首字符为1 }1.以0开头的串不被接受,故设置陷阱状态,当DFA在启动状态读入的符号为0,则进入陷阱状态2.设置7个状态:开始状态q s,q0:除以5余0的等价类,q1:除以5余1的等价类,q2:除以5余2的等价类,q3:除以5余3的等价类,q4:除以5余4的等价类,接受状态q t(8){x|x∈{0,1}+且x的第十个字符为1}(设置一个陷阱状态,一旦发现x的第十个字符为0,进入陷阱状态)(9){x|x∈{0,1}+且x以0开头以1结尾}(设置陷阱状态,当第一个字符为1时,进入陷阱状态)(10){x|x∈{0,1}+且x中至少含有两个1}(11){x|x∈{0,1}+且如果x以1结尾,则它的长度为偶数;如果x以0结尾,则它的长度为奇数}可将{0,1}+的字符串分为4个等价类。
q0:[ε]的等价类,对应的状态为终止状态q1:x的长度为奇且以0结尾的等价类q2:x的长度为奇且以1结尾的等价类q3: x的长度为偶且以0结尾的等价类q4: x的长度为偶且以1结尾的等价类(12){x|x是十进制非负数}5,6,7,8,94,9(13)Φ(14)ε*******************************************************************************3 (1) (张友坤02282061)∑={0,1}Set(q0)={x | x∈∑* }(2)∑={0,1}Set(q0)=εSet(q1)={x | x∈∑+ }(3)∑={0,1}Set(q0)= εSet(q1)={x | x∈∑+并且x中不含形如00的子串}Set(q2)={x | x∈∑+并且x中不含形如00的子串}(4)∑={0,1}Set(q0)={x | x∈∑*并且x中不含形如00的子串}Set(q1)={x | x∈∑*并且x中不含形如00的子串}(5)∑={0,1}Set(q0)= {x | x∈∑*,并且x∈{0}*或者x中含形如100的子串}Set(q1)={x | x∈∑*,并且x中含形如1的子串}Set(q2)={x | x∈∑*,并且x中含形如10的子串}Set(q3)={x | x∈∑*,并且x中含形如101的子串}Set(q4)={x | x∈∑*,并且x中含形如1011的子串}Set(q5)={x | x∈∑*,并且x中含形如10110的子串}(6)∑={0,1}Set(q0)= {ε}Set(q1)={x | x∈{0+}}Set(q2)={x | x∈∑*,并且x中不含形如10110的子串而且x中含有1} Set(q3)={x | x∈∑*,并且x中不含形如10110的子串而且x中含有1} (7)∑={0,1}Set(qs)= {ε}Set(qe)= {0}Set(q1)={x | x∈∑+,并且把x看成二进制数时,x% 5=1}Set(q2)={x | x∈∑+,并且把x看成二进制数时,x% 5=2}Set(q3)={x | x∈∑+,并且把x看成二进制数时,x% 5=3}Set(q4)={x | x∈∑+,并且把x看成二进制数时,x% 5=4}Set(q0)={x | x∈∑+,并且把x看成二进制数时,x% 5=0并且x不为0} (8)M={Q, ∑,δ,q0,F}Q={q0,q1,q2, (10)∑={0,1}当0<=i<=8时候,δ(q i,0)= δ( q i,1)=q(i+1)δ( q 9,1)=q10δ(q 10,0)= δ( q 10,1)=q10F={ q 10}Set(q0)= {ε}Set(q1)= {0,1}Set(q2)={x | x∈∑+,并且|x|=2}Set(q3)={x | x∈∑+,并且|x|=3}Set(q4)={x | x∈∑+,并且|x|=4}Set(q5)={x | x∈∑+,并且|x|=5}Set(q6)={x | x∈∑+,并且|x|=6}Set(q7)={x | x∈∑+,并且|x|=7}Set(q8)={x | x∈∑+,并且|x|=8}Set(q9)={x | x∈∑+,并且|x|=9}Set(q10)={x | x∈∑+,并且x的第十个字符是1}(9) M={Q, ∑,δ,q0,F}Q={q0,q1,q2 }∑={0,1}δ(q 0,0)=q1δ(q 1,0)= q1δ(q 1,1)= q2δ(q 2,1)= q2δ(q 2,0)= q1F={ q 2}Set(q0)= {ε}Set(q1)={x | x∈∑+,并且x以0开头以0结尾}Set(q2)={x | x∈∑+,并且x以0开头以1结尾}(10) M={Q, ∑,δ,q0,F}Q={q0,q1,q2 }∑={0,1}δ(q 0,0)=q0δ(q 0,1)=q1δ(q 1,0)= q1δ(q 1,1)= q2δ(q 2,1)= q2δ(q 2,0)= q2F={ q 2}Set(q0)= {0}*Set(q1)={x | x∈∑+,并且x中只有一个1 } Set(q2)={x | x∈∑+,并且x至少有俩个1} (11) M={Q, ∑,δ,q0,F}Q={q0,q1,q2 , q3,q4 }∑={0,1}δ(q 0,0)=q1δ(q 0,1)=q4δ(q 1,0)= q3δ(q 1,1)= q2δ(q 2,1)= q4δ(q 2,0)= q1δ(q 3,0)= q1δ(q 3,1)= q4δ(q 4,1)= q2δ(q 4,0)= q3F={ q 0 ,q 1 ,q 2}Set(q0)= {ε}Set(q1)={x | x∈∑+,以0结尾,长度为奇数} Set(q2)={x | x∈∑+,以1结尾,长度为偶数} Set(q3)={x | x∈∑+,以0结尾,长度为偶数} Set(q4)={x | x∈∑+,以1结尾,长度为奇数} (12)M={Q, ∑,δ,q0,F}Q={q0,q1,q2,q3,q4}∑={.,0,1,2, (9)F={q1,q2,q4}δ(q 0,0)=q1δ(q 0,1|2|3|4|5|6|7|8|9)=q2δ(q 1, . )=q2δ(q 2,0|1|2|3|4|5|6|7|8|9)=q2δ(q 2, . )=q3δ(q 3,0|1|2|3|4|5|6|7|8|9)=q4δ(q 4,0|1|2|3|4|5|6|7|8|9)=q4Set(q0)= {ε}Set(q1)={0 }Set(q2)={十进制正整数}Set(q3)={十进制非负整数后面接个小数点. }Set(q4)={十进制正小数}(13)Set(q0)= {ε} Set(q0)=∅ (14)Set(q0)= {ε}******************************************************************************* 4 在例3-6中,状态采用]...[21n a a a q 的形式,它比较清楚地表达出该状态所对应的记忆内容,给我们解决此问题带来了很大的方便,我们是否可以直接用]...[21n a a a 代替]...[21n a a a q 呢?如果能,为什么?如果不能,又是为什么?从此问题的讨论,你能总结出什么来? (唐明珠 02282084) 答:我认为能够直接用]...[21n a a a 代替]...[21n a a a q ,因为在例3-6中,]...[21n a a a q 只是一种新的表示方法,用来表示状态存储的字符,这样就省去了在δ中逐一给出每一个具体的输入字符和状态的定义。
它的作用在于使FA 中状态定义更加简洁。
得到结论:在今后描述FA 时,应该根据具体的情况,使用适当的方法。
******************************************************************************* 5.试区别FA 中的陷阱状态和不可达状态。
(吴贤珺 02282047) 解:⑴ 陷阱状态(课本97页):指在其它状态下发现输入串不可能是该FA 所识别的句子时所进入的状态。
FA 一旦进入该状态,就无法离开,并在此状态下,读完输入串中剩余的字符。
⑵ 不可达状态(课本108页):指从FA 的开始状态出发,不可能到达的状态。
就FA的状态转移图来说,就是不存在从开始状态对应的顶点出发,到达该状态对应顶点的路径。
⑶ 从两者的定义可见:相对于不可达状态来说,陷阱状态是可达的。
但是,它们都是状态转移图中的非正常状态。
如果从状态转移图中的状态引一条弧到不可达状态,同时不可达状态所有的移动都是到自身。
这样,不可达状态就变成了陷阱状态。
****************************************************************************** 注:此题目有问题,可以将题设改为:x 中0和1个数相等且交替出现6.证明:题目有不严密之处,图中给出DFA 与题目中的语言L (M )={x|x x ∈{0,1}+ 且x 中0的个数和1的个数相等}不完全对应,首先图中的DFA 可接受空字符串,而L (M )不接受,其次,对于有些句子,例如1100,L (M )可以接受,但DFA 不接受 (1)根据图中的DFA 可看出,右下角的状态为陷阱状态,所以去除陷阱状态 (2)由DFA 可构造出与其对应的右线性文法: (刘钰 02282083)01|110|000,0101|0110|10S A A S S BB S S A S S B S S S S →→→→→→→→将1S,1代入;代入得由此可以看出该文法接受的语言为L={(10|01)*},显然01或10分别是作为整体出现的,所以L(M)中0和1的个数相等。