学长正常情况下只能每科考一回试,希望学弟学妹们日后可以薪火相传。
注:试卷本人只能记住大概意思,记不住具体是怎么描述的,故仅供参考。
有同学发布了老师原版的英文考试试题,
有原版的英文试题还看我这个回忆版干啥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中子串01、10出现的次数相等}
[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不以aa或bb结尾}
[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中子串00和11出现的次数相等}
[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 hasjusttwo 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+1∣n⩾1}
[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+1∣n≥1}.
8.给定如下CFG:
S
→
A
S
A
∣
A
∣
ε
A
→
00
∣
ε
S\rightarrow ASA|A|\varepsilon \\A\rightarrow 00|\varepsilon
S→ASA∣A∣εA→00∣ε
(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} S→ASA∣A∣εA→00∣ε
(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\} {aibjck∣k=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={aibjck∣k=i×j and k > 0 } \left.k>0\right\} k>0}.
后记,仅供参考,有疑问记得问老师,不保证下面说的绝对正确。
- 所有的设计题,记得画完后验一下空串、一个字符的、两个字符的
- 第2题,最好是能体现出你画的是NFA,即带有空转移,不同老师要求不一样。有的允许画DFA,有的不允许,一切按照老师要求,老师上课都会强调的,实在不行课后问老师也可以
- 第3题第一问,记得考虑aaa这种情况
- 第5题,一定要用数学语言完整的给出所设计DFA的 ( Q , Σ , δ , q 0 , F ) (Q,\Sigma,\delta,q_{0},F) (Q,Σ,δ,q0,F)才可以
- 第6题,所谓两块0,中间隔个1才能叫两块,譬如“000100”
- 第7题,一定要设计DPDA,如果哪一条不符合DPDA的规则,那就丸啦
- 第8题第一问,S需要派生出来S的,很多同学栽在这上面
- 第9题,过程也要记得写,最好化简换符号
- 第10题,注意 k > 0 k>0 k>0条件的限定,不要接受空串