1、通过列出以下每种语言的元素来重新表述这些语言。a. {x 属于 {a, b, c} | |x| 小于等于 2} b. {xy | x 属于 {a, aa} 且 y 属于 {aa, aaa}} c. {} d. {a 的 n 次方 | n 小于 20 且能被 3 整除} e. {a 的 n 次方 b 的 m 次方 | n 小于 2 且 m 小于 3}
- a. {ε, a, b, c, aa, bb, cc, ab, ac, ba, bc, ca, cb}
- b. {aaa, aaaa, aaaaa}
- c. {ε}
- d. {ε, aaa, aaaaaa, aaaaaaaaa, aaaaaaaaaaaa, aaaaaaaaaaaaaaa}
- e. {ε, a, b, ab, bb, aab, abb}
2、列出以下每种语言中长度小于等于3的所有字符串:a. {a} b. {a, b} c. {aⁿbⁿ} d. {xy | x 属于 {a} 且 y 属于 {b} } e. {aⁿbᵐ | n > m}
a. {ε, a, aa, aaa}
b. {ε, a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb}
c. {ε, ab, aabb}
d. {ε, a, b, aa, ab, bb, aaa, aab, abb, bbb}
e. {a, aa, aab, aaa}
3、将以下每种语言通过列出其元素重新表述:a. {x 属于 {0, 1} | x 是小于 10 的无多余前导零的二进制表示};b. {x 属于 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} | x 是小于 20 的无多余前导零的十进制质数表示};c. {x 属于 {a, b, …, z}* | x 是英语中的双字母单词}。
- a.
{0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001} - b.
{2, 3, 5, 7, 11, 13, 17, 19} - c. 英语双字母单词众多,如 am, an, as, at, be, by, do, go, he, hi, in, is, it, me, my, no, of, on, or, so, to, up, us 等。
4、用集合构造符表示法重新表述以下每种语言。a. 字母表 {a, b} 上所有以 a 开头的字符串组成的语言;b. 字母表 {a, b, c} 上所有偶数长度的字符串组成的语言;c. 由零个或多个字符串 ba 组成的字符串的语言;d. 由任意数量的 a 后面跟着相同数量的 b,再跟着相同数量的 c 组成的字符串的语言。
a. {x ∈ {a, b}* | x 以 a 开头}
b. {x ∈ {a, b, c}* | |x| 是偶数}
c. {(ba)n | n ≥ 0}
d. {anbncn | n ≥ 0}
5、a. 给出一个字符串 x 的例子,x 是一个集合构造式,它所定义的语言包含 x 本身。b. 给出一个字符串 y 的例子,y 是一个集合构造式,它所定义的语言不包含 y 本身。c. 考虑 r = “{集合构造式 x | x 所定义的语言不包含 x}”。证明假设 r 在 r 所定义的语言中会导致矛盾。证明假设 r 不在 r 所定义的语言中也会导致矛盾。
a. 例如 x = "{所有集合构造式字符串}" ,这个集合构造式定义的语言是所有集合构造式字符串,显然包含它自身。
b. 例如 y = "{所有长度为 1 的字符串}" ,该集合构造式定义的语言是长度为 1 的字符串集合,而 "{所有长度为 1 的字符串}" 长度远大于 1,所以不包含它自身。
c. 假设 r 在 r 所定义的语言中,根据 r 的定义, r 所定义的语言中的元素是那些所定义的语言不包含自身的集合构造式,那么 r 所定义的语言就不应该包含 r ,这产生了矛盾;假设 r 不在 r 所定义的语言中,这意味着 r 所定义的语言包含 r 自身,这又与 r 的定义矛盾。
6、对于以下每种语言,绘制一个接受该语言的确定有限自动机(DFA)。所有情况下,DFA 的字母表应为 {a, b}。a. {a, b} b. {a} c. {x 属于 {a, b} | x 中 a 的数量为奇数} d. {ax | x 属于 {a, b} } e. {(ab)n}
以下是将给定文本内容调整为 Markdown 格式的结果:
本题需分别绘制接受各语言的 DFA:
a. 对于语言 {a, b}* ,可构建一个只有一个状态且该状态为接受状态的 DFA,此状态在输入 a 或 b 时都都转移到自身;
b. 对于语言 {a}* ,构建一个初始状态也是接受状态的 DFA,输入 a 时转移到自身,输入 b 则进入非接受的死状态;
c. 对于语言 {x 属于 {a, b}* | x 中 a 的数量为奇数} ,构建两个状态的 DFA,初始状态非接受,输入 a 转移到接受状态,再输入 a 回到初始状态,输入 b 都保持当前状态;
d. 对于语言 {ax | x 属于 {a, b}*} ,构建两个状态的 DFA,初始状态输入 a 转移到接受状态,该接受状态输入 a 或 b 都转移到自身;
e. 对于语言 {(ab)n} ,构建三个状态的 DFA,初始状态输入 a 转移到中间状态,中间状态输入 b 转移到接受状态,接受状态输入 a 回到中间状态,输入 b 进入非接受的死状态。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



