什么是 TOC 中的摩尔机?
摩尔机是一种有限状态机,其中下一状态由当前状态和当前输入符号决定。
给定时间的输出符号仅取决于机器的当前状态。
摩尔机有 6 个元组
(Q, q0, Σ, O, δ, λ)
其中,
- Q:有限状态集
- q0:机器的初始状态
- Σ:有限输入符号集
- O:输出字母表
- δ:转移函数,其中 Q × Σ → Q
- λ:输出函数,其中 Q → O
状态图如下所示:

示例 1
输入 - 010
转移 - δ (q0,0) => δ(q1,1) => δ(q1,0) => q2
输出 - 1110(q0 为 1,q1 为 1,q1 再次为 1,q2 为 0)
摩尔机的状态转换表如下所示:
| 当前状态 | 下一状态 | 输出 | |
|---|---|---|---|
| 0 | 1 | ||
| q0 | q1 | q2 | 1 |
| q1 | q2 | q1 | 1 |
| q2 | q2 | q0 | 0 |
解释
- 步骤 1 - 当前状态 q0 在输入“0”时转到状态 q1,在输入“1”时转到状态 q2,生成输出 1。
- 步骤 2 - q1 在输入“0”时转到状态 q2,在输入“1”时转到状态 q1,生成输出“1”。
- 步骤 3 - q2 在输入“0”时转到 q2,在输入“1”时转到 q0,生成输出“0”。
示例 2
设计一个摩尔机,判断输入字符串是否包含偶数或奇数个 1。
如果输入是偶数个 1,则输出为 1
否则,输出为 0
状态转换图如下所示:

状态转换表
状态转换表如下所示:
| 当前状态 | 输入 0 的下一状态 | 输入 1 的下一状态 | 输出 |
|---|---|---|---|
| ->q0 | q0 | q1 | 1 |
| q1 | q1 | q0 | 0 |
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP