-
字母表
是一个非空 有穷 集合
字母表中的元素成为该字母表的一个字母/符号/字符
用 ∑ 表示 -
符号串
字母表 ∑上的符号串,由∑中的符号构成的有穷序列
用ε表示空串/空字
用ω表示符号串的长度,即符号串中字符法仍个数,记作|ω|
用∑*表示∑上所有符号串的全体eg. ∑ = {0,1}, ∑** = ? |ω| = 0, ∑* = {ε} |ω| = 1, ∑* = {0,1} |ω| = 2, ∑* = {00,01,10,11} |ω| = 3, ∑* = {000,001,010,....} ...
-
符号串的相关概念
-
前缀
移走符号串s尾部的0个或多个字符eg. appl、apple是apple的前缀
-
后缀
移走符号串s头部的0个或多个字符eg.pple、apple是apple的后缀
-
子串
从s中删除一个前缀和一个后缀eg. pp是apple的子串
-
真前缀/真后缀/真子串
对应前缀/后缀/子串去除空串ε和本身s -
子序列
从s中删除0个或多个字符(不要求连续删除)eg. 'abcd' 有多少个子串? 长度不能为0或4 长度为1、2、3 |w| = 1, {a,b,c,d} |w| = 2, {ab, bc, cd} |w| = 3, {abc, bcd} 共9种
-
符号串的相关运算
连接/并置运算
eg. s = '01' g = 'ab' sg = '01ab' s和g直接连接即可
幂运算
x^0 = ε x^1 = '01' x^2 = '0101' x^3 = '010101' ... x^n = x^(n-1)x x^(n-1)和x连接
-
字母表的相关运算
-
乘积/幂
① 设∑1、∑2为两个字母表,则∑1与∑2的乘积
∑1∑2 = {ab | a∈ ∑1, b∈ ∑2}
|w| 恒为2eg. ∑1 = {a,b}, ∑2 = {0,1} ∑1∑2 = {a0, a1, b0, b1}
② ∑的n次幂,递归定义
∑^0 = {ε}
∑^n = ∑^(n-1)∑eg. ∑ = {0, 1} ∑^0 = {ε} ∑^1 = {0, 1} ∑^2 = {00, 01, 10, 11} ...
-
正闭包
∑+ = ∑ U ∑^2 U ∑^3… -
Kleene闭包
∑* = ∑ ^0U ∑^1 U ∑^2…
6.语言
任意集合L 属于 ∑*是∑上的一个语言
语言是给定字母表上任一符号串的组合
∅ 为空语言
{ε} 为仅含空字的语言
7.语言上的运算
① 连接
② 幂
③ 正闭包
④ Kleene 闭包
与字母表的运算类似