Skip to content

Word · String

从某个有限位置集到字母表的函数,即有限符号序列。

条目类型
定义

形式陈述

给定字母表 Σ自然数 n,长度为 n 的字(word)是一个函数

w:{1,,n}Σ,

也可写成有限序列 w=a1a2an。其长度记为 |w|=n。长度为零时位置集为空,唯一的空函数就是空字 ε。所有有限字与非空字分别构成

Σ=n0Σn,Σ+=n1Σn.

字的前缀、后缀与子串由位置区间定义;“真前缀”通常排除字本身,是否排除空字需按上下文说明。字是有序对象,重复符号和出现位置都属于其结构。

直觉

字是把字母表中的原子按有限顺序排成的一条序列。把它形式化为位置到符号的函数,可以精确谈长度、切片和连接,而不依赖某种具体字符串存储。顺序与重数都重要:0110001 是三个不同的字。空字虽然没有符号,却是连接运算的单位元,因此不能把它当作“什么都没有而无需纳入集合”。

位置索引保留顺序与重复;空字是定义域为空的唯一字。
例子与边界

Σ={a,b} 上,w=abba 的长度为 4ab 是前缀,ba 是后缀,第二至第三位置形成子串 bb。空字满足 |ε|=0,并属于每个 Σ

边界是空字与空语言的区别:ε 是一个字,而 是不含任何字的语言;{ε} 则是恰含一个长度零字的语言。无限符号序列不属于 Σ,需要 ω-word 等不同模型。

ε 通常不属于字母表 Σ,除非有人刻意把一个同名印刷符号作为普通元素加入;作为空序列的 ε 长度仍为零。字也不能定义成字母表的有限子集,因为集合表示会丢失顺序与重复次数。

推论与应用

字是形式语言的元素,也是有限状态自动机与图灵机读取的有限输入。字符串连接把字组成自由幺半群,长度给出与连接相容的自然数分级。

前缀、后缀和子串结构支撑字符串匹配、词法分析、编码理论与 Myhill–Nerode 区分后缀的定义。形式语言里的 word 是字母序列;Word-RAM 的 machine word 则是固定 w-bit 运算单元,两者不能因英文同名而混用。

压缩索引进一步把字符串视作 bit 串与可导航序列:rank/select在位位置上计数与定位,简洁位向量按 bit 报空间,FM-index从 BWT 表示支持模式搜索。这些页面都保留字符边界、字母表编码和机器字打包三个层次。

同一个字在亚线性模型中还会被分配不同的可见性。Indexing让 Alice 看见整个 bit 字而 Bob 只持索引,输出虽只有一位,通信仍可能线性;位查询模型则让单个算法按位置读取隐藏字,并把读取次数作为成本。性质距离常把两个等长字的 Hamming 差异除以长度,但测试器还需声明可查询坐标和 far 阈值。字的集合论定义没有改变,改变的是谁看见哪些符号以及访问一次如何计费。

参考资料
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,Ch. 0, strings, length and the empty string。
  • John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006,Ch. 1, strings and Kleene closure。
关系图谱120 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组