1、形式语言与自动机答案蒋宗礼形式语言与自动机答案蒋宗礼【篇一:形式语言第四章参考答案(蒋宗礼)】p 解:所求正则表达式为:(0+1)*。 + 0, 1。 解:所求正则表达式为:(0+1)+。 xx0,1且x中不含形如00的子串 。 解:根据第三章构造的fa,可得所求正则表达式为:1*(01+)*(01+0+1)。 xx0,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
2、(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个正则表达式用“+”号相连,就得到所要求的正则表达式。 xx0,1且当把x看成二进制数时,x模5与3同余和x为0时,x=1 且x0时,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,不符合条件,所以不
3、必增加关于它的状态。下面对每一个状态考虑输入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,故进入q1 q1:设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。输入0,x=(5n+2)*2=10n+4,模5是4,故进入q4 输入1,x=(5n+2)*2+1=10n+5,模5是0,故进入q0 q3:设x=5n+3。输入0,x=(5n+3)*2=10
4、n+6,模5是1,故进入q1输入1,x=(5n+3)*2+1=10n+7,模5是2,故进入q2 q4:设x=5n+4。输入0,x=(5n+4)*2=10n+8,模5是3,故进入q3 输入1,x=(5n+4)*2+1=10n+9,模5是4,故进入q4 则状态转移图如下: 则所求的正则表达式为:1(010*1+(1+001*0)(101*0)*(0+110*1)*(1+001*0)(101*0)* xx0,1+ 且x的第10个字符是1 。 解:所求正则表达式为:(0+1)1(0+1)*。 xx0,1+ 且x以0开头以1结尾 。 解:所求正则表达式为:0(0+1)*1。 xx0,1+ 且x中至少含两
5、个1 。 解:所求正则表达式为:(0+1)*1(0+1)*1(0+1)*。 xx0,1*和如果x以1结尾,则它的长度为偶数;如果x以0结尾,则它的长度为奇数。 解:所求正则表达式为:(0+1)2n+11+(0+1)2n0 (nn) 或0+(0+1)(0+1)(0+1)*1+(0+1)(0+1)(0+1)(0+1)*0。 xx是十进制非负实数 。 解:首先定义 .,0,1,2,3,4,5,6,7,8,9 则所求正则表达式为:(0+1+?+9)*. (0+1+?+9)*。 9 * 2.理解如下正则表达式,说明它们表示的语言 (1)(00+11)+表示的语言特征是0和1都各自成对出现 (2)(1+0
6、)*0100表示的语言特征是以010后接连续的0结尾 (3)(1+01+001)*(?+0+00) 表示的语言特征是不含连续的3个0 (4)(0+1)(0+1)*+ (0+1)(0+1)(0+1)* 表示所有长度为3n或2m的0,1串(n?0,m?0) (5)(0+1)(0+1)* (0+1)(0+1)(0+1)* 表示所有长度为3n+2m的0,1串(n?0,m?0) (6)00+11+(01+10)(00+11)*(10+01)表示的语言特征为长度为偶数n的串.当n=2时,是00或11的串。+n?4时,是以01或10开头,中间的子串00或11成对出现,最后以10或01结尾的串 * 4.3.证
7、明下列各式 褚颖娜 02282072 (1)结合律 (rs)t=r(st) (r+s)+t= r+(s+t) 1)证明 对? x(rs)t 总可以找到一组x1 x2 x3 使得 x=x1x2x3 其中x3t x1x2rs 且 x1r, x2s, 则 x2x3st 因此x1(x2x3)r(st) 即 x1x2x3r(st)xr(st)得证 因此 (rs)t?r(st) 同理可证r(st)? (rs)t 则 (rs)t=r(st) 成立 2) 证明 对?x(r+s)+t x(r+s)或xt 对于xr+s?xr或rs , 因此xr或xs或xt?xr或x(s+t) ? xr+(s+t) 所以(r+s)
8、+t? r+(s+t) 同理可证r+(s+t)? (r+s)+t 则(r+s)+t= r+(s+t) 成立 (2)分配律 r(s+t)=rs+rt (s+t)r=sr+tr 1) 证明 对于?xr(s+t) 总可以找到x1 x2 使得x=x1x2 其中x1r, x2(s+t) 由x2(s+t)? x2s或x2t 则x1x2rs或x1x2rt 所以r(s+t)?rs+rt 对于?xrs+rt ?xrs或xrt 且总可以找到一组x1 x2 使得x=x1x2 其中x1r, x2s或x1r, x2t?x1r,x2s或x2t? x1r,x2(s+t)? x1x2r(s+t) 所以rs+rt?r(s+t)
9、 则r(s+t)=rs+rt 2) 证明 对于?x(s+t)r 总可以找到x1 x2 使得x=x1x2 其中 x1(s+t),x2r 由x1(s+t)? x1s或x1t 则x1x2sr或x1x2tr 所以(s+t)r?sr+tr 对于?xsr+tr ?xsr或xtr 且总可以找到一组x1 x2 使得x=x1x2 其中x1s, x2r或x1t, x2r? x1s或x1t, x2r? x1(s+t) ,x2r? x1x2(s+t)r 所以sr+tr ?(s+t)r 则(s+t)r=sr+tr (3)交换律 r+s=s+r 证明 对于 ?xr+s?xr或xs?xs或xr?xs+r 所以r+s?s+r
10、 同理可证s+rr+s 则r+s=s+r (4)幂等律 r+r=r 证明 对于 ? xr+r? xr或xr? xr 所以r+r?r 对于 ?xr?xr或xr?xr+r 所以r?r+r 因此 r+r=r (5)加法运算零元素:r+?=r 证明 对于 ? xr+? xr或x? xr 所以r+?r 对于 ?xr?xr或x?xr+? 所以r?r+? 因此 r+?=r (7)乘法运算零元素:r?=?r=? 证明:对?x?r x?=?x=?r?=?r=r r?=?r=? * 由第一章的作业1.30中的第八题 (l2l1)*=( l2* l1*)* 其中l1、l2 为正则语言 又r、s为正则表达式 正则语言
11、可以用正则表达式表示,因此显然有(r+s)*= (r*s*)*成立 即(r*s*)*=(r+s)* 成立 (11) (r*)*=r* 由第一章的作业1.30中的第三题 (l1*)*= l1*其中l1为正则语言 又r为正则表达式 正则语言可以用正则表?达式表示,因此显然有(r)= r成立 * * * * * * * * 4下面各式成立吗?请证明你的结论 (1) (r+rs)*r=r(sr+r)* 证明:成立。 如果对所有的k=0, (r+rs)k r=r(sr+r)k 成立,则(r+rs)*r=r(sr+r)*肯定成立 可以用归纳法证明(r+rs)k r=r(sr+r)k对所有的k=0成立 i.
12、 k=0时候,(r+rs)0 r=r= r(sr+r)0 nn ii. 假设k=n时候(r+rs)r=r(sr+r)成立,往证k=n+1时候结论成立 (r+rs)n+1r=(r+rs)n (r+rs)r=(r+rs)n (rr+rsr)= (r+rs)n r (r+sr)= r(sr+r)n (r+sr) = r(sr+r)(sr+r)= r(sr+r) 这就是说,结论对k=n+1成立,即证明了(r+rs)k r=r(sr+r)k对所有的k=0成立,所以(r+rs)*r=r(sr+r)* (2) t(s+t)r=tr+tsr 证明:不成立。不妨取r=0,s=1,t=2,则t(s+t)r=2(1
13、+2)0=210+230,但tr+tsr=20+210. (3) rs=sr 证明:不成立。不妨取r=0,s=1,显然rs=01,而sr=10. (4) s(rs+s)*r=rr*s(rr*s)* 不成立,假设r,s分别是表示语言r,s的正则表达式,例如当r=0,s=1, l(s(rs+s)*r)是以1开头的字符串,而l(rr*s(rr*s)*)是以0开头的字符串.l(s(rs+s)*r) ? l(rr*s(rr*s)*) 所以s(rs+s)*r? rr*s(rr*s)*,结论不成立 (5)(r+s)*=(r*s*)* 证明:结论成立。 i. l(r+s)=l(r)?l(s), l(r)=l(
14、rs0)?l(r*s*), l(s)=l(r0s)?l(r*s*) 那么l(r+s)=l(r)?l(s) ?l(r*s*),(l(r+s)* ?(l(r*s*)*, n n+1l(r+s)*) ?l( (r*s*)* ),所以(r+s)* ? (r*s*)* ii. (r+s)*= (r+s)*)*, 对任意m,n=0,rmsn ?(r+s)m+n ,所以r*s*?(r+s)* (r*s*)*?(r+s)*)*= (r+s)* 由i,ii可以知道(r*s*)*?(r+s)*,(r+s)* ? (r*s*)* 得到(r+s)*=(r*s*)* (6)(r+s)*=r*+s* 不成立,假设r,s分别是表示语言r,s的正则表达式,例如当r=0,s=1,l(r+s)*)=x| x=?或者x是所有由0,1组成的字符串 l(r*+s*)=l(r*)?l(s*)=?,0,00,000,?,1,11,111, l(r+s)*) ? l(r*+s*),例
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1