Vince Jiang

CSCI3130 / 课程伴读 · 本站更新

CSCI3130 L01 Part 2/2 Three Basic Concepts

课程:CSCI3130 Formal Languages and Automata Theory · 2026T1 本讲:L01 Part 2/2 Three Basic Concepts · 原件 L01-数学基础-2026T1.pdf(本地课件) p.55–90 定位:理解字母表、字符串、语言和文法四个层次;能重算语言运算,并证明一个文法恰好生成指定语言。 前后:上一份 L01-P1-数学预备.md · 下一份 L02-P1-确定有限自动机.md

p.55 Outline 分节页;p.56 列 languages、grammars、automata,并将自动机留到下一章。

Three Basic Concepts

字母表、串与语言(p.57–58)【新】

p.57 A language is a set of strings

p.57 String: A sequence of symbols from the alphabet

p.57 的**字母表(alphabet)**给出允许使用的符号;**字符串(string)**是有限个符号按顺序排列;**语言(language)**是一些字符串组成的集合。p.58 取 Σ={a,b}\Sigma=\{a,b\},其中a是符号,ab是长度2的串,{ab}\{ab\} 则是含一个串的语言。顺序属于串的一部分,所以ab与ba不同;集合本身的列举顺序不改变语言。

后续判断表达式时先问它的类型。w∈Lw\in L 合法,因为左边是串、右边是语言;如果写成 w⊆Lw\subseteq L,便把串错误地当作集合。相反,L⊆Σ∗L\subseteq\Sigma^{\ast} 正是在比较两组串。

p.57 用字母表 Σ={a,b,c,…,z}\Sigma=\{a,b,c,\ldots,z\} 给出 cat、dog、house 作为字符串例子。p.58 缩小到 {a,b}\{a,b\},列出 a、ab、abba、baba、aaabbbaabab,并命名 u=ab,v=bbbaaa,w=abbau=ab,v=bbbaaa,w=abba。u、v、w 是代表整个串的变量名,不是额外加入字母表的字符。一个符号不能在这一行悄悄换成一个串而不说明,这种类型检查贯穿整门课。

连接与反转(p.59–60)【新】

p.59 的连接(concatenation)将后一串原样接到前一串后:w=abba,v=bbbaaaw=abba,v=bbbaaa,得到 wv=abbabbbaaawv=abbabbbaaa。字符既不排序也不合并,末尾a与开头b都保留。

p.60 将 w=ababaaabbbw=ababaaabbb 从右向左逐符号读取,得到 wR=bbbaaababaw^R=bbbaaababa。上标R是反转操作,不是乘方。补充:反转连接时,先后两段也交换位置,所以 (uv)R=vRuR(uv)^R=v^Ru^R;例如u=ab、v=baa,则uv=abbaa,反转aabba,而 vRuR=aab ba=aabbav^Ru^R=aab\,ba=aabba。这组用于解释顺序的字符串为补充自取。

串长与空串(p.61–63)【新】

p.61 用 ∣w∣\lvert w\rvert 表示字符个数:abba长4、aa长2、a长1。p.62 取u=aab长3、v=abaab长5,连接uv=aababaab长8,所以 ∣uv∣=∣u∣+∣v∣=3+5=8\lvert uv\rvert=\lvert u\rvert+\lvert v\rvert=3+5=8。连接把两段字符都保留,长度相加的原因就在这里。

p.63 定义空串(empty string) λ\lambda,长度0。它是一个合法字符串,只不过没有字符;λw=wλ=w\lambda w=w\lambda=w。以abba为例,左右加一段零字符都还是abba。空串不是打印出的希腊字母本身,而是用该记号表示“零个字符”。

子串、前后缀和串的幂(p.64–66)【新】

p.64 a subsequence of consecutive characters

p.64 的关键词是consecutive:substring必须连续,不能任意跳过中间字符。abbab包含ab、abba、b、bbab。p.65 更严格地固定位置:prefix从开头取,suffix从结尾取;两者都包括空串与整个原串。

表(p.65):abbab的前缀和后缀。

Prefixes Suffixes
λ abbab
a bbab
ab bab
abb ab
abba b
abbab λ

p.66 的 wnw^n 是把同一个w连续连接n次。(abba)2=abbaabba(abba)^2=abbaabba,长度 2⋅4=82\cdot4=8;w0=λw^0=\lambda,相当于连接零份。不要把 w2w^2 写成将每个字符分别重复两次。

全部串与语言(p.67–69)【新】

p.67 的 Σ∗\Sigma^{\ast} 收集字母表能构成的所有有限串,包含 λ\lambda。对 {a,b}\{a,b\},先有长度0的空串,再有a、b,再有aa、ab、ba、bb。p.68 的 Σ+\Sigma^+ 只收非空串,所以 Σ+=Σ∗−{λ}\Sigma^+=\Sigma^{\ast}-\{\lambda\}。这里一个字母本来就非空,删掉空串的结论没有额外障碍。

p.69 的语言是 Σ∗\Sigma^{\ast} 的任意子集,不要求有限、不要求已经知道算法,也不要求包含某种有意义的英文单词。{λ}\{\lambda\}、{a,aa,aab}\{a,aa,aab\} 都是语言;“所有串”本身也是语言。

p.69 的第三个有限语言例子是 {λ,abba,baba,aa,ab,aaaaaa}\{\lambda,abba,baba,aa,ab,aaaaaa\}。它有六个成员;最长成员有六个字符,但这是巧合,语言成员数与最长串长度本来是两个独立的量。p.68 的课件写“Σ 的星闭包减 λ”,这里用 {λ}\{\lambda\} 明确表示从集合里删去空串这个成员,避免把集合差误写成集合减一个字符串。

空语言、匹配计数与集合运算(p.70–72)【新】

p.70 强调 ∅≠{λ}\varnothing\ne\{\lambda\}。前者有0个串,后者有1个串,而那个串的长度是0。把“集合有多少成员”和“一个成员有多长”分开,就不会被两个0混淆。

p.71 的 L={anbn:n≥0}L=\{a^nb^n:n\ge0\} 要求所有a先出现,接着同样多的b。n=0得空串,n=1得ab,n=2得aabb;abb有1个a、2个b,不属于L。abba虽数量相等,但顺序不符合“a段后接b段”,也不属于这个语言(此反例为补充)。

p.72 直接沿用集合运算:{a,ab,aaaa}∪{bb,ab}={a,ab,bb,aaaa}\{a,ab,aaaa\}\cup\{bb,ab\}=\{a,ab,bb,aaaa\};交集只有ab;前者减后者剩a、aaaa。补语言以 Σ∗\Sigma^{\ast} 为全集,即 L‾=Σ∗−L\overline L=\Sigma^{\ast}-L,因此求补前必须说明字母表。

p.71 还列 aaaaabbbbb 为成员,对应 n=5。p.72 的补语言例子在 Σ={a,b}\Sigma=\{a,b\} 下取 L={a,ba}L=\{a,ba\},那么 L‾\overline L 包含 λ、b、aa、ab、bb、aaa 及其余所有串,唯独排除 a 与 ba。按长度枚举时,长度0有 λ;长度1删去 a 后剩 b;长度2从 aa、ab、ba、bb 中删去 ba 后剩 aa、ab、bb。这解释了课件省略号怎样继续,而不是让读者猜“补”是否仅指字母 a、b 的互换。

语言的反转与连接(p.73–74)【新】

p.73 的 LR={wR:w∈L}L^R=\{w^R:w\in L\} 是把每个成员各自反转。{ab,aab,baba}R={ba,baa,abab}\{ab,aab,baba\}^R=\{ba,baa,abab\};{anbn:n≥0}R={bnan:n≥0}\{a^nb^n:n\ge0\}^R=\{b^na^n:n\ge0\}。它不是把集合列举顺序颠倒。

p.74 的 L1L2={xy:x∈L1,y∈L2}L_1L_2=\{xy:x\in L_1,y\in L_2\} 要枚举所有左右选择。原例左边a、ab、ba,右边b、aa,逐项得到a+b=ab、a+aa=aaa、ab+b=abb、ab+aa=abaa、ba+b=bab、ba+aa=baaa,最终集合有这六个串。补充:选择对的数量是两基数相乘,但结果串可能重复;不能一般断言连接语言的基数必为乘积。

把“选择一对”和“得到一个串”分开(补充自取例):令 A={λ,a}A=\{\lambda,a\}、B={a,aa}B=\{a,aa\}。四对选择依次是 (λ,a)(\lambda,a)、(λ,aa)(\lambda,aa)、(a,a)(a,a)、(a,aa)(a,aa),得到 a、aa、aa、aaa。因此 AB={a,aa,aaa}AB=\{a,aa,aaa\},只有三个成员;中间两对不同,但连接后留下的串相同,集合不能存两份 aa。这也说明看见 aa 时,分界位置不一定唯一。以后 NFA 猜连接边界、CFG 出现不同推导时,都要区分“过程不同”与“最终串不同”。

再检查两个极端:A{λ}=AA\{\lambda\}=A,因为右边总能选中那个零字符串;A∅=∅A\varnothing=\varnothing,因为右边连一次选择也做不了。前者是“选中长度为零的对象”,后者是“没有对象可选”,不是同一种零。

把 p.74 的完整笛卡尔选择写成表,就能同时看见连接顺序与每一对输入:

左串 右串 b 右串 aa
a ab aaa
ab abb abaa
ba bab baaa

表里六格确实互不相同,才得到六元素语言。补充:为什么通常只能说“不超过乘积”:若左、右语言均为 {λ,a}\{\lambda,a\},四个选择得到 λ、a、a、aa;两个不同选择都得到 a,所以最终语言只有三个元素。

语言幂允许每份选择不同成员(p.75–76)【新】

p.75 的 LnL^n 是n份语言的连接,每份都可独立选成员。{a,b}3={aaa,aab,aba,abb,baa,bab,bba,bbb}\{a,b\}^3=\{aaa,aab,aba,abb,baa,bab,bba,bbb\},总共 23=82^3=8 种;L0={λ}L^0=\{\lambda\},它是含空串的语言,不能写成裸空串。

p.76 对 L={anbn:n≥0}L=\{a^nb^n:n\ge0\} 得 L2={anbnambm:n,m≥0}L^2=\{a^nb^na^mb^m:n,m\ge0\}。n与m独立,因为第一次与第二次从L选串可以选不同长度。取n=2、m=3得到aabb与aaabbb,连接aabbaaabbb;不能将两次选择强制成相同n。

考试角度:(A 级:HW01-2026T1-题目.pdf Q3,考p.75的语言三次幂及独立选串)枚举时先列选择,再按最终字符串去重;当前作业不在此直接列出完整提交答案。

p.75 还专门给出 {a,bba,aaa}0={λ}\{a,bba,aaa\}^{0}=\{\lambda\}。零次幂不需要从原语言选任何成员,因此结果不依赖这三个串是什么。这也解释了为什么它不是空语言:没有选取动作,仍然得到一个结果——零字符的串。

星闭包与正闭包的边界(p.77–78)【新】

p.77 定义 L∗=⋃n≥0LnL^{\ast}=\bigcup_{n\ge0}L^n,即连接任意有限份,包括0份;p.78 定义 L+=⋃n≥1LnL^+=\bigcup_{n\ge1}L^n,至少一份。原例 L={a,bb}L=\{a,bb\},零份产生空串,一份产生a、bb,两份产生aa、abb、bba、bbbb;例如三份a+bb+a得abba。

原页辨析:已视觉核对p.78,页上还写 L+=L∗−{λ}L^+=L^{\ast}-\{\lambda\}。这对该页的 {a,bb}\{a,bb\} 成立,但对任意语言需加条件 λ∉L\lambda\notin L。若 L={λ}L=\{\lambda\},一份就能产生空串,所以 L+={λ}L^+=\{\lambda\},而右边为空集。这是两边实际计算出的反例。无条件成立的是 L∗=L+∪{λ}L^{\ast}=L^+\cup\{\lambda\};不能把字母表的 Σ+\Sigma^+ 与任意语言的 L+L^+ 无条件混用。

Grammars

从英语规则到推导过程(p.79–81)【新】

p.79 Languages can be described as a system of symbols and the grammars (rules) by which the symbols are manipulated

p.79 以规则描述语言;p.80 将句子分成noun phrase和verb phrase,又把短语拆成名字、冠词、名词、动词、介词等。中间类别是等待展开的位置,最终词是展开结束后留下的结果。

题面(L01-数学基础-2026T1.pdf · 英语句子例子 · p.81)

p.81 Look at the sentence. Is this grammatically correct?

p.81 Joe runs from the car.

p.81 的演示从Sentence开始,展开noun phrase为Name再为Joe;verb phrase展开为verb与prepositional phrase;介词短语展开为from加noun phrase;后者再展开为the car;最后verb变成runs,得到目标句。每步只替换一个允许的类别,其他已经出现的词保留。这里检验的是给定规则能否生成这句话,不是在讨论它现实中是否合乎语义。

p.80 的所有短语规则可以按下表直接用于展开;右栏的两行表示可选方案:

待展开类别 允许的组成
Sentence noun phrase + verb phrase
noun phrase Name(例如 Joe);或 article + noun(例如 the car)
verb phrase verb(例如 runs);或 verb + prepositional phrase
prepositional phrase preposition + noun phrase(例如 from the car)

按 p.81 的展开顺序,把每一步留下的串写清楚:

Sentence
noun phrase + verb phrase
Name + verb phrase
Joe + verb phrase
Joe + verb + prepositional phrase
Joe + verb + preposition + noun phrase
Joe + verb + from + noun phrase
Joe + verb + from + article + noun
Joe + verb + from + the + car
Joe + runs + from + the + car

由原页展开的中间步骤:上面把“+”当拼接符号,不作为最终英文句子的字符。原页在 noun phrase 与 Name 之间还插写一行 noun,并把 article + noun 那一行重复一次;这两处不增加新的终结词,不能据此虚造另一套正式英语文法。p.79 的第二条文字说 grammar 研究 governing the use of language 的规则,正是这些展开约定所扮演的角色。

四元组与一步推导(p.82–84)【新】

p.82 A grammar G is defined as a 4-tuple:

p.82 的 G=(V,T,S,P)G=(V,T,S,P) 中,V是有限变量集合,T是有限终结符集合,S是起始变量,P是有限产生式集合。**变量(variable)**代表待展开的部分;**终结符(terminal)**是最终串中的符号。有限规则可以重复使用,因此不妨碍生成无限语言。

p.83 的一步推导 α⇒γ\alpha\Rightarrow\gamma 在某个上下文中替换一个匹配片段:若 A→βA\to\beta,则 α1Aα2⇒α1βα2\alpha_1A\alpha_2\Rightarrow\alpha_1\beta\alpha_2;两边上下文不变。⇒∗\Rightarrow^{\ast} 表示零步或多步,不是Kleene星闭包那个“字符串连接操作”,只是同样使用星号表示任意有限次。

p.84 定义 L(G)={w∈T∗:S⇒∗w}L(G)=\{w\in T^{\ast}:S\Rightarrow^{\ast}w\}。必须同时满足从S可达、且只剩终结符。含变量的中间串叫sentential form(句型),不能因为已经能推出来就把它收进最终语言。

p.82 的具体四元组是 V={S}V=\{S\}、T={a,b}T=\{a,b\}、起始变量 S、规则集合 P={S→aSb,S→λ}P=\{S\to aSb,S\to\lambda\}。S 虽然同时出现在 V 和第三个位置,角色不同:V 列出所有可以使用的变量,第三个位置从其中指定“从谁开始”。

p.83 顶部的一般规则写 x→yx\to y,x 属于变量与终结符合起来构成的非空串,y 可以为空串;课件用 (V,T) 记这个混合符号范围。下面的 A→βA\to\beta 是用单个待替换位置示范“一步替换”,不能反过来把所有一般文法都限定成左侧单变量。后续 CFG 才专门施加该限制。

由本页展开的操作:在 aaSbb 中,取左上下文 aa、被替换变量 S、右上下文 bb;使用 S→aSbS\to aSb,只替换中间 S,得到 aaaSbbb。使用 S→λS\to\lambda 则得到 aabb。箭头 →\to 写在规则表里;⇒\Rightarrow 连接实际运行中的前后句型。零步允许 S⇒∗SS\Rightarrow^{\ast}S,但 S 含变量,所以不属于 L(G)L(G)。

配对生成与额外一个b(p.85–86)【新】

题面(L01-数学基础-2026T1.pdf · Example 1.11 · p.85)

p.85 Consider the grammar: G=({S},{a,b},S,P)G=(\{S\},\{a,b\},S,P) With P given by S→aSbS\to aSb, S→λS\to\lambda

公式按讲义重排。每用一次 S→aSbS\to aSb,左边增加一个a、右边增加一个b;用空产生式结束。算n=2:S⇒aSb⇒aaSbb⇒aabbS\Rightarrow aSb\Rightarrow aaSbb\Rightarrow aabb。中间aaSbb仍有S,只是句型;最后aabb才是句子。全部结果恰为 anbna^nb^n,因为每次增加一对且次序固定;反过来任意n可使用递归规则n次后结束。

题面(同一原件 · Example 1.12 · p.86)

p.86 Find a grammar that generates L={anbn+1:n≥0}L=\{a^nb^{n+1}:n\ge0\}

公式按讲义重排。原页给 S→Ab,A→aAb,A→λS\to Ab,A\to aAb,A\to\lambda。先在末尾固定一个b,再让A生成成对的a与b。n=2时 S⇒Ab⇒aAbb⇒aaAbbb⇒aabbbS\Rightarrow Ab\Rightarrow aAbb\Rightarrow aaAbbb\Rightarrow aabbb;n=0时 S⇒Ab⇒bS\Rightarrow Ab\Rightarrow b,所以不能把空串误收进这个语言。

任意顺序的等量a、b(p.87–88)【新】

题面(L01-数学基础-2026T1.pdf · Example 1.13 · p.87)

p.87 S→SSS\to SS, S→λS\to\lambda, S→aSbS\to aSb, S→bSaS\to bSa

p.87 Does this grammar indeed generate the language?

页上的目标语言是 L={w:na(w)=nb(w)}L=\{w:n_a(w)=n_b(w)\},公式按讲义重排,na(w)n_a(w)、nb(w)n_b(w) 分别数a、b出现次数。与p.85不同,这里没有要求所有a排在b之前。

先证生成的都合法:空串计数相同;外包a、b各加1;SS将两个分别等量的串连接后,总数仍相等。再证合法的都能生成:对长度归纳。空串可由空产生式生成;非空平衡串若首尾相反,去掉它们仍平衡,归纳后用aSb或bSa包回去;若首尾相同,利用前缀计数差可切成两个更短非空平衡串,分别归纳后用SS连接。p.88 的Else省略了切分为什么存在,完整补证见附录 A2。

算一遍(用于展开原文法的补充自取串):w=abba,首尾同为a,可拆ab与ba;S⇒SS⇒aSbS⇒abS⇒abbSa⇒abbaS\Rightarrow SS\Rightarrow aSbS\Rightarrow abS\Rightarrow abbSa\Rightarrow abba。aabb则无需拆分:S⇒aSb⇒aaSbb⇒aabbS\Rightarrow aSb\Rightarrow aaSbb\Rightarrow aabb。两条推导都遵守同一套规则。

由 p.88 的 Else 补全必要证明。 假设长度不超过 2n 的全部等量串都能生成,考察长度 2n+2 的串 w。如果首尾同为 a,定义前 k 个字符的计数差 d(k)=na−nbd(k)=n_a-n_b。第一位后 d(1)=1d(1)=1;因为最后一位是 a 且总差为0,最后一位之前 d(2n+1)=−1d(2n+1)=-1。每读一个字符,差只加1或减1,因此从1变到−1之间必有一次变成0。取这样的真前缀作为 w1w_1,其余作为 w2w_2。前缀等量,全串也等量,所以余下的串仍等量;两段都非空且比 w 短,归纳假设可以分别使用。首尾同为 b 的情形把正负互换即可。

于是所有首尾同字符的情况都能先用 S→SSS\to SS,再让左 S 生成 w1w_1、右 S 生成 w2w_2。首尾不同的情况已由 aSb 或 bSa 覆盖;连同空串基例,完成“所有合法串都能生成”。必要的切分理由已经放在这里,附录只作重复核验,不是完成主线的必读跳转。

等价文法(p.89–90)【新】

p.89 Two grammars G1 and G2 are equivalent if they generate the same language

p.89 比较 G1:S→aSb∣λG_1:S\to aSb\mid\lambda 与 G2:S→aAb∣λ,A→aAb∣λG_2:S\to aAb\mid\lambda,A\to aAb\mid\lambda。二者都只加配对的外层a、b,也都能停止。n=0由起始变量直接到空串;n≥1时,G2G_2 先由S加第一对,再由A加剩下n−1对。n=2的过程 S⇒aAb⇒aaAbb⇒aabbS\Rightarrow aAb\Rightarrow aaAbb\Rightarrow aabb。变量数量、推导长度和规则写法不同,都不妨碍最终语言相等。

p.90 为Questions结束页。证明等价要比较全部终结符串,列出一两个共同例子只说明语言有交集,远弱于相等。

考试角度:(A 级:HW01-2026T1-题目.pdf Q3–Q4;HW01-2025T1-题目.pdf Q2,考的是语言幂与计数文法。)见附录 A3。

用一个遗漏的串诊断文法(补充自检)

构造文法时,“不会生成坏串”和“能生成所有好串”是两个独立责任。只用 S→aSbS\to aSb 与 S→λS\to\lambda,每次都各加一个 a、b,所以确实不会生成数量不等的串;但它只能生成所有 a 在前的串,无法生成 ba。因此它可以描述 p.85 的语言,却不能代替 p.87 的文法。反过来,若为了补 ba 就让 S 任意产生 a 或 b,虽然很容易覆盖目标串,却会额外生成 a,破坏第一项责任。

证明第一项时跟着允许的规则走:基础结果合法,每种构造都保持性质。证明第二项时跟着任意目标串的结构走:目标如何拆成更小的合法串,文法中哪条规则负责把它们装回去。两种归纳的对象不同,不能只把一句“归纳可得”重复两遍。

自检:空语言的星闭包和正闭包分别是什么?

先分别计算零份连接与至少一份连接,不要靠记忆删空串。

展开推理与答案

∅0={λ}\varnothing^0=\{\lambda\};任何正整数份连接都无法选齐成员,所以为 ∅\varnothing。故 ∅∗={λ}\varnothing^{\ast}=\{\lambda\},而 ∅+=∅\varnothing^+=\varnothing。再比较 {λ}+={λ}\{\lambda\}^+=\{\lambda\}:至少选一份仍可得到零字符,正闭包并不保证串非空。

本讲核心考点

  • 串与语言的类型、空语言与空串语言(p.57–70;C 级)。
  • 连接、语言幂的独立选择与去重(p.74–76;A 级 HW01 Q3)。
  • 正闭包含空串的条件(p.77–78;C 级,原页等式需限定)。
  • 四元组、句型与生成语言(p.82–84;C 级)。
  • 文法构造必须证明两个包含方向(p.85–89;C 级)。

附录

A2 Example 1.13 的平衡串切分证明(p.87–88)

用 d(j)d(j) 表示前j个字符中a的数量减b的数量,d(0)=d(n)=0d(0)=d(n)=0。一个a使差值加1,一个b使差值减1。

若平衡串首尾相同且为a,d(1)=1d(1)=1;最后一个a加入前 d(n−1)=−1d(n-1)=-1,否则加入a不能让总差回到0。从1到−1每次只改变1,因此中途必然经过0,存在 1<j<n1<j<n 使 d(j)=0d(j)=0。前j个字符构成非空平衡串x,其余字符y也平衡,因为总差0减去前缀差0仍为0。两段长度都比原串短。首尾同为b时,d(1)=−1,d(n−1)=1d(1)=-1,d(n-1)=1,同理必经过0。

归纳假设保证 S⇒∗xS\Rightarrow^{\ast}x 与 S⇒∗yS\Rightarrow^{\ast}y,于是 S⇒SS⇒∗xS⇒∗xyS\Rightarrow SS\Rightarrow^{\ast}xS\Rightarrow^{\ast}xy。首尾相反的情形则删掉一对外层不同字符,用aSb或bSa包回。归纳基础包括空串;长度2的合法串只有ab、ba,分别由aSb、bSa后接空产生式得到。

另一方面,对推导树结构归纳:空产生式得到0比0;aSb、bSa各在已平衡内串上增添一a一b;SS把两组相等计数分别相加,仍相等。因而没有生成任何不平衡串。两个方向合起来,才完成“恰好”的证明。

回到正文:任意顺序的等量a、b(p.87–88)

A3 作业/往年题演练(非讲义内容):语言幂与计数文法

题面块(HW01-2026T1-题目.pdf(本地课件) · Q3–Q4 · p.1;公式按讲义重排):

p.1 (25pts) Let L = {ab, b}, list all strings in L3L^3.

p.1 (25pts) Construct a grammar that generates the language L={anb2n:n≥0}L=\{a^n b^{2n}:n\geq0\}.

Q3三次各自选ab或b,共8个选择。依选择顺序列:(ab,ab,ab)→ababab;(ab,ab,b)→ababb;(ab,b,ab)→abbab;(ab,b,b)→abbb;(b,ab,ab)→babab;(b,ab,b)→babb;(b,b,ab)→bbab;(b,b,b)→bbb。八个结果各不相同,所以集合正是这八串;不能只把每个原成员各重复三遍。

Q4取S→aSbb或λ。递归n次先生成n个a和2n个尾部b,再消S;归纳每次保持两倍关系及段序。任意目标n可选恰n次,因此完整。n=2:S⇒aSbb⇒aaSbbbb⇒aabbbb;n=0直接λ。

题面块(HW01-2025T1-题目.pdf(本地课件) · Q2 · p.1):

p.1 Find a grammar for the language L={an, where n is odd}L=\{a^n,\text{ where }n\text{ is odd}\}. (20%)

指数为非负整数时奇数从1开始。取S→aaS或a。递归k次后结束得a的数量2k+1;每个正奇数都有唯一相应k。例S⇒aaS⇒aaaaS⇒aaaaa,生成5个a,不能生成λ或偶数长度。

回到正文:语言幂与计数文法

来源与证据

历史版本考试证据(本次未重新读取全部试卷):读了 HW01-2025T1-题目.pdf、HW01-2026T1-题目.pdf、HW02-2025T1-题目-更新.pdf、HW03-2025T1-题目.pdf、HW04-2025T1-题目.pdf、HW05-2025T1-题目.pdf、期中练习-含解答-学期待核.pdf、期末-2022T1-资料包.pdf、Final-Exam-2023T1-题目.pdf、Final-Exam-2024T1-题目.pdf、Final-Exam-2025T1-题目.pdf、期末-2023T1-资料包.pdf、期末-2024未核-资料包.pdf;未识别用途的 PDF:无

  • 原件:L01-数学基础-2026T1.pdf(本地课件),PDF p.55–90。

  • 本次复核:2026-10-13;逐页读取原件文字,视觉核对图片公式、图及文法排版,保留已发布稿的深化段落。