设计一个摩尔机来生成二进制数的1的补码。


摩尔机有6个元组,如下所示:

(Q, q0, Σ, O, δ, λ)

其中,

  • Q:有限状态集
  • q0:机器的初始状态
  • Σ:有限的输入符号集
  • O:输出字母表
  • δ:转移函数,其中 Q × Σ → Q
  • λ:输出函数,其中 Q → O

状态转换图如下:

解释

  • 步骤1 - q0 是起始状态,输入 '0' 转移到 q1 状态,输入 '1' 转移到 q2 状态,并生成输出 0。
  • 步骤2 - q1 在输入 '0' 时转移到自身,输入 '1' 时转移到 q2 状态,并生成输出 '1'。
  • 步骤3 - q2 在输入 '0' 时转移到 q1,输入 '1' 时转移到 q2,并生成输出 '0'。

例如,

取一个二进制数:1011

输入

输入
1011
状态q0q2q1q2q2
输出00100

让我们为给定的语言构建状态转换表。该表如下所示:

当前状态下一状态输出
00
->q0q1q20
q1q1q21
q2q1q20

更新于: 2021年6月12日

8K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告