形式语言与自动机 练习题总结

例2
请设计 DFA, 在任何由 0 和 1 构成的串中, 接受含有 01 子串的全部串

{0,1}的子串全部串有:0,1,01,故本题有三种状态

  1. 未发现 01, 即 0 没有出现过;
  2. 未发现 01, 但刚刚读入字符是 0;
  3. 已经发现了 01.
    因此 DFA A 可定义为:A = ({q1,q2,q3},{0,1},δ,q1,{q3})
    其中 δ 为:
    δ(q1,1) = q1 δ(q2,1) = q3 δ(q3,1) = q3
    δ(q1,0) = q2 δ(q2,0) = q2 δ(q3,0) = q3

将此DFA用状态转移图表示:其中q1为初始状态
在这里插入图片描述
将此DFA用状态转移表表示:
在这里插入图片描述
求解接受全部含有 01 子串的 DFA, ˆ δ 处理串 0101 的过程
解题过程借助如上的状态转移图
在这里插入图片描述
注意:ˆ δ(q0,ε) = δ(q0,0)

例3.
若 Σ = {0,1}, 给出接受全部含有奇数个 1 的串 DFA

状态有两个:q0→偶数个1,q1→奇数个1,其中q1为接受状态
在这里插入图片描述

例4.
若 Σ = {0,1}, 给出接受全部含有偶数个 0 和偶数个 1 的串 DFA

接受状态:00,11,1100,111100,…
在这里插入图片描述
例5.
对任何状态 q 及字符串 x 和 y, 证明 ˆ δ(q,xy) = ˆ δ(ˆ δ(q,x),y)

@注意,类似此类证明,均对y进行数学归纳法
1.y = ε 时,i
在这里插入图片描述
例7.
由 0 和 1 构成的串中, 接受全部以 01 结尾的串, 如何设计 DFA?

q0: XX11
q1:XXX0
q2:XX01
在这里插入图片描述
在这里插入图片描述
续例7. 接受全部以 01 结尾的串的 NFA.
在这里插入图片描述
五元组为 A = ({q0,q1,q2},{0,1},δ,q0,{q2}),
转移函数 δ:
δ(q0,0) = {q0,q1} δ(q1,0) = ∅ δ(q2,0) = ∅
δ(q0,1) = {q0} δ(q1,1) = {q2} δ(q2,1) = ∅

续例7.
接受 01 结尾的串的 NFA, ˆ δ 处理 00101 时每步的状态转

在这里插入图片描述

  1. ˆ δ(q0,ε)={q0}
  2. ˆ δ(q0,0) = δ(q0,0) = {q0,q1}
  3. ˆ δ(q0,00) = δ(q0,0)∪δ(q1,0) = {q0,q1}∪∅ = {q0,q1}
  4. ˆ δ(q0,001) = δ(q0,1)∪δ(q1,1) = {q0}∪{q2} = {q0,q2}
  5. ˆ δ(q0,0010) = δ(q0,0)∪δ(q2,0) = {q0,q1}∪∅ = {q0,q1}
  6. ˆ δ(q0,00101) = δ(q0,1)∪δ(q1,1) = {q0}∪{q2} = {q0,q2}

因为 q2 是接受状态, 所以 NFA 接受 00101

例8.
设计 L = {w ∈{0,1}∗ | w 的首尾字符相同.} 的 NFA

续例11.
L = {w ∈{0,1}∗ | w 倒数 3 个字符至少有一个是 1} 的 NFA.

在这里插入图片描述
例4.
在这里插入图片描述
例5.
给出正则表达式 (aa)∗(bb)∗b 定义的语言

在这里插入图片描述
例6.
Design regular expression for L = {w | w consists of 0’s and 1’s, and the third symbol from the right end is 1.}

(0+1)∗1(0+1)(0+1)

例7.
Design regular expression for L = {w | w ∈{0,1}∗ and w has no pair of consecutive 0’s.}

在这里插入图片描述

例9.
将如图 DFA 转换为正则表达式.

在这里插入图片描述
在这里插入图片描述
例10.
利用状态消除法, 设计下图自动机的正则表达式.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例11.
正则表达式 (0+1)∗1(0+1) 构造为 ε-NFA

在这里插入图片描述
例12. 判断 (L + M)∗ = (L∗M∗)∗.

  1. 将 L 和 M 替换为 a 和 b;
  2. (a+b)∗ ?= (a∗b∗)∗;
  3. 因为 L((a+b)∗) = L((a∗b∗)∗);
  4. 所以 (L + M)∗ = (L∗M∗)∗.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例16.
若语言 L = (00+1)∗, 同态 h : {a,b}→{0,1}∗
为h(a) = 01, h(b) = 10,
请证明 h−1(L) = (ba)∗

  1. 若w以a开头,则h(w) starts with 01,h(w) not in L;
  2. if w ends with b, then h(w) end with 10, h(w) not in L;
  3. if w contains consecutive aa, then h(w) contains 0101, h(w) not in L;
  4. if w contains consecutive bb, then h(w) contains 1010, h(w) not in L;
    So, h-1(L)=(ba)*

例17.
For a language L, define head(L) to be the set of all prefixes of strings in L. Prove that if L is regular, so is head(L)

在这里插入图片描述

  • 15
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 哈工大形式语言自动机理论MOOC练习题分为两部分:选择题和编程题。选择题主要考察学生对于形式语言自动机理论的基本概念和知识的掌握程度,题目不考察太深入的细节,大多数都可以在课程的PPT找到答案。编程题主要考察学生对于自动机的理解和能力的实现,需要学生熟练掌握Python语言的基本语法和知识,并且需要结合课程讲解的内容,掌握如何用Python实现自动机的构建和分析。 选择题包括一些比较典型的题目,例如求解最短字符、判断语言的等价性、求解正则表达式等等。这些题目都是在课程详细讲解过的,需要学生认真复习PPT的内容,掌握重点难点,才能对选择题答题有较好的准确率。 编程题一般不会有太多的代码要求,主要是考查学生如何运用Python语言来实现自动机。例如,求解一个正则表达式的DFA,需要学生熟练掌握正则表达式的基本语法和Python的re模块,以及如何将正则表达式转换为NFA和DFA,并且实现DFA的最小化算法。编程题难度相对选择题会比较高,需要学生对于理论知识的掌握和动手能力有一定的要求,同时也需要学生具备一定的代码思维和分析能力。 综上所述,哈工大形式语言自动机理论MOOC练习题是一个相对严谨的练习题库,需要学生认真复习课程的内容,并且结合大量的实践演练,才能够掌握理论知识和动手能力,提高自己的学习水平和能力。 ### 回答2: 哈工大形式语言自动机理论MOOC练习题是在学习该课程的过程重要的一环。该课程涵盖了形式语言自动机理论的基础知识,通过课程练习题的完成,可以帮助学生更好地掌握理论知识,加强对于课程内容的理解。 在完成哈工大形式语言自动机理论MOOC练习题的过程,需要掌握一定的逻辑思维能力,以及一定的代码编程能力。题目通常涉及到正则表达式、自动机等相关知识点,需要学生能够灵活运用这些知识点,组织解题思路。 此外,在完成练习题的过程,还需要学生注重细节和准确性。这些细节可能会影响到最终的解题结果,因此学生需要仔细和认真地完成每一个步骤。 总之,完成哈工大形式语言自动机理论MOOC练习题是学习该课程不可或缺的一部分,它对于学生掌握理论知识、提高逻辑思维能力、加强编程技能都有重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值