哈工大本部2022形式语言与自动机期末试题

学长正常情况下只能每科考一回试,希望学弟学妹们日后可以薪火相传。
注:试卷本人只能记住大概意思,记不住具体是怎么描述的,故仅供参考。

有同学发布了老师原版的英文考试试题有原版的英文试题还看我这个回忆版干啥233,链接:https://blog.csdn.net/weixin_44705388/article/details/126386915。这位同学发布的文章遵循CC 4.0 BY-SA协议,该协议允许对原作进行修改、分享,故本人将其中的内容合并到了本回忆题中方便大家参考。同时,本文章亦遵循CC 4.0 BY-SA协议。

2022年05月08日星期天下午13:00~15:00,本人经历了形式语言与自动机考试,现将回忆版试题呈现如下,供大家参考。

先聊聊考试感受:题比2019,2020的要难一些,难的来源在于考了一些“以为”可能不会或是可能很少考察的点,上课时还是要认真听老师讲,老师会很明确的说哪里常考哪里会考哪里不考(凡是没明确说不考的,可能都会考,但也不要担心,其实内容不多的)以及不同的题目要遵循怎样的答题规范。

PDF版本将于近期上传至Github:HITSZ-OpenCS项目中,敬请关注~

2022.05.19 Update:成绩出来了,有问题可以问老师,老师会把你扣分的点说的明明白白,让你心服口服。本人考试时写的什么,现在也很难一模一样地复现了,答案就不提供了:),个人认为一些较坑的点,会放在文末。

1.请为以下语言设计DFA: L = { w ∈ { 0 , 1 } ∗ ∣ w 既包含 00 ,又包含 11 } L=\left\{ w\in \left\{ 0,1 \right\} ^*|w\text{既包含}00\text{,又包含}11 \right\} L={w{0,1}w既包含00,又包含11}

[10points] Design a DFA for L = { w ∈ { 0 , 1 } ∗ ∣ w L=\left\{w \in\{0,1\}^* \mid w\right. L={w{0,1}w contains both 00 and 11 as substrings } \} }.

2.请为以下语言设计NFA: L = { w ∈ { 0 , 1 } ∗ ∣ w 中子串 01 、 10 出现的次数相等 } L=\left\{ w\in \left\{ 0,1 \right\} ^*|w\text{中子串}01\text{、}10\text{出现的次数相等} \right\} L={w{0,1}w中子串0110出现的次数相等}

[10points] Design an NFA for L = { w ∈ { 0 , 1 } ∗ ∣ w L=\left\{w \in\{0,1\}^* \mid w\right. L={w{0,1}w contains an cqual number of occurrences of the substrings 01 and 10 } \} }.

3.请为以下语言设计正则表达式:
(1) L = { w ∈ { a , b } ∗ ∣ w 中子串 a a 至少出现两次 } L=\left\{ w\in \left\{ a,b \right\} ^*|w\text{中子串}aa\text{至少出现两次} \right\} L={w{a,b}w中子串aa至少出现两次} (之前手抖将此处题目打错,感谢同学帮助指出错误!)

(2) L = { w ∈ { a , b } ∗ ∣ w 不以 a a 或 b b 结尾 } L=\left\{ w\in \left\{ a,b \right\} ^*|w\text{不以}aa\text{或}bb\text{结尾} \right\} L={w{a,b}w不以aabb结尾}

[10points] Design regular expressions for languages over Σ = { a , b } \Sigma=\{a, b\} Σ={a,b} :
(1) All strings having at least two occurrences of the substring a a a a aa.
(2) All strings that do not end with substrings a a a a aa or b b b b bb.

4.请用泵引理证明L不是正则: L = { w ∈ { 0 , 1 } ∗ ∣ w 中子串 00 和 11 出现的次数相等 } L=\left\{ w\in \left\{ 0,1 \right\} ^*|w\text{中子串}00\text{和}11\text{出现的次数相等} \right\} L={w{0,1}w中子串0011出现的次数相等}

[10points] Prove that the language L L L is not regular with pumping lemma L = { w ∈ { 0 , 1 } ∗ ∣ w L=\left\{w \in\{0,1\}^* \mid w\right. L={w{0,1}w has the same number of substrings 00 and 11 } \} }.

5.请从任一正则语言 L ⊆ Σ ∗ L\subseteq \Sigma ^* LΣ 的DFA出发,用正式的符号语言构造h(L)的DFA。其中 h : Σ → Σ ∗ , ∀ a ∈ Σ , h ( a ) = a a h:\Sigma \rightarrow \Sigma ^*,\forall a\in \Sigma ,h\left( a \right) =aa h:ΣΣ,aΣ,h(a)=aa

[10points] Let h : Σ → Σ ∗ h: \Sigma \rightarrow \Sigma^* h:ΣΣ be a homomorphism: ∀ a ∈ Σ , h ( a ) = a a \forall a \in \Sigma, h(a)=a a aΣ,h(a)=aa. Please give a formal construction of the DFA for h ( L ) h(L) h(L) from the DFA that accepts the regular language L L L over Σ \Sigma Σ.

6.请为以下语言构造文法: { w ∈ { 0 , 1 } ∗ ∣ w 有着两块 ( b l o c k ) 0 ,每块 0 的个数相等 } \left\{ w\in \left\{ 0,1 \right\} ^*|w\text{有着两块}\left( block \right) 0\text{,每块}0\text{的个数相等} \right\} {w{0,1}w有着两块(block)0,每块0的个数相等}
【注:原题目为“恰有”(just)两块,后来考试中老师把just删掉了】

[10points] Design a context-free grammar for the language
L = { x ∈ { 0 , 1 } ∗ ∣ x L=\left\{x \in\{0,1\}^* \mid x\right. L={x{0,1}x has just two nonempty blocks of 0s of the same length } \} }.

7.请为以下语言构造deterministic PDA: { w = a n b 2 n + 1 ∣ n ⩾ 1 } \left\{ w=a^nb^{2n+1}|n\geqslant 1 \right\} {w=anb2n+1n1}

[10points] Design a deterministic PDA for L = { a n b 2 n + 1 ∣ n ≥ 1 } L=\left\{a^n b^{2n+1} \mid n \geq1\right\} L={anb2n+1n1}.

8.给定如下CFG:
S → A S A ∣ A ∣ ε A → 00 ∣ ε S\rightarrow ASA|A|\varepsilon \\A\rightarrow 00|\varepsilon SASAAεA00∣ε

(1) 消除空产生式
(2) 消除单元产生式
(3) 化为乔姆斯基文法

[10points] Begin with the grammar:
S → A S A ∣ A ∣ ε A → 00 ∣ ε \begin{aligned} & S \rightarrow A S A|A| \varepsilon \\ & A \rightarrow00\mid \varepsilon \end{aligned} SASAAεA00ε
(1) Eliminate any ε \varepsilon ε-productions.
(2) Eliminate any unit productions in the resulting grammar.
(3) Put the resulting grammar into Chomsky Normal Form.

9.PDA->CFG的一道题目,具体的题目记不得了,书上有,老师也会举例子,就是套公式,方法会了就行

[10points] Consider a PDA P P P with start state q q q, start symbol Z Z Z in the stack and the following transition rules. Please convert P P P to an equivalent CFG.
(1) δ ( q , 0 , Z ) = { ( q , X ) } \delta(q,0, Z)=\{(q, X)\} δ(q,0,Z)={(q,X)}
(2) δ ( q , 0 , X ) = { ( q , X X ) } \delta(q,0, X)=\{(q, X X)\} δ(q,0,X)={(q,XX)}
(3) δ ( q , 1 , X ) = { ( r , X ) } \delta(q,1, X)=\{(r, X)\} δ(q,1,X)={(r,X)}
(4) δ ( r , 0 , X ) = { ( r , ε ) } \delta(r,0, X)=\{(r, \varepsilon)\} δ(r,0,X)={(r,ε)}

10.请为以下语言设计图灵机: { a i b j c k ∣ k = i × j , k > 0 } \left\{ a^ib^jc^k|k=i\times j,k>0 \right\} {aibjckk=i×j,k>0}

[10points] Design a Turing machine for L = { a i b j c k ∣ k = i × j L=\left\{a^i b^j c^k \mid k=i \times j\right. L={aibjckk=i×j and k > 0 } \left.k>0\right\} k>0}.

后记,仅供参考,有疑问记得问老师,不保证下面说的绝对正确。

  1. 所有的设计题,记得画完后验一下空串、一个字符的、两个字符的
  2. 第2题,最好是能体现出你画的是NFA,即带有空转移,不同老师要求不一样。有的允许画DFA,有的不允许,一切按照老师要求,老师上课都会强调的,实在不行课后问老师也可以
  3. 第3题第一问,记得考虑aaa这种情况
  4. 第5题,一定要用数学语言完整的给出所设计DFA的 ( Q , Σ , δ , q 0 , F ) (Q,\Sigma,\delta,q_{0},F) (Q,Σ,δ,q0,F)才可以
  5. 第6题,所谓两块0,中间隔个1才能叫两块,譬如“000100”
  6. 第7题,一定要设计DPDA,如果哪一条不符合DPDA的规则,那就丸啦
  7. 第8题第一问,S需要派生出来S的,很多同学栽在这上面
  8. 第9题,过程也要记得写,最好化简换符号
  9. 第10题,注意 k > 0 k>0 k>0条件的限定,不要接受空串
  • 7
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 哈工大形式语言自动机理论MOOC练习分为两部分:选择和编程。选择主要考察学生对于形式语言自动机理论的基本概念和知识的掌握程度,目不考察太深入的细节,大多数都可以在课程的PPT中找到答案。编程主要考察学生对于自动机的理解和能力的实现,需要学生熟练掌握Python语言的基本语法和知识,并且需要结合课程中讲解的内容,掌握如何用Python实现自动机的构建和分析。 选择中包括一些比较典型的目,例如求解最短字符串、判断语言的等价性、求解正则表达式等等。这些目都是在课程中详细讲解过的,需要学生认真复习PPT中的内容,掌握重点难点,才能对选择有较好的准确率。 编程中一般不会有太多的代码要求,主要是考查学生如何运用Python语言来实现自动机。例如,求解一个正则表达式的DFA,需要学生熟练掌握正则表达式的基本语法和Python的re模块,以及如何将正则表达式转换为NFA和DFA,并且实现DFA的最小化算法。编程难度相对选择会比较高,需要学生对于理论知识的掌握和动手能力有一定的要求,同时也需要学生具备一定的代码思维和分析能力。 综上所述,哈工大形式语言自动机理论MOOC练习是一个相对严谨的练习库,需要学生认真复习课程中的内容,并且结合大量的实践演练,才能够掌握理论知识和动手能力,提高自己的学习水平和能力。 ### 回答2: 哈工大形式语言自动机理论MOOC练习是在学习该课程的过程中重要的一环。该课程涵盖了形式语言自动机理论的基础知识,通过课程练习的完成,可以帮助学生更好地掌握理论知识,加强对于课程内容的理解。 在完成哈工大形式语言自动机理论MOOC练习的过程中,需要掌握一定的逻辑思维能力,以及一定的代码编程能力。目通常涉及到正则表达式、自动机等相关知识点,需要学生能够灵活运用这些知识点,组织解思路。 此外,在完成练习的过程中,还需要学生注重细节和准确性。这些细节可能会影响到最终的解结果,因此学生需要仔细和认真地完成每一个步骤。 总之,完成哈工大形式语言自动机理论MOOC练习是学习该课程不可或缺的一部分,它对于学生掌握理论知识、提高逻辑思维能力、加强编程技能都有重要的作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值