先决条件——图灵机
问题 1:绘制一个图灵机,将两个数字相减。
例子:
脚步:
- 第1步。如果找到 0,则将 0 转换为 X 并向右走,然后将所有 0 转换为 0 并向右走。
- 第2步。然后将 C 转换为 C 并向右走,然后将所有 X 转换为 X 并向右走。
- 第 3 步。然后将 0 转换为 X 并向左走,然后将所有 X 转换为 X 并向左走。
- 第四步。然后将 C 转换为 C 并向左转,然后将所有 0 转换为 0 并向左转,然后将所有 X 转换为 X 并向右走,重复整个过程。
- 第 5 步。否则,如果 C 发现将 C 转换为 C 并向右走,则将所有 X 转换为 B 并向右走,然后将 0 转换为 0 向左走,然后停止机器。
这里, q0表示初始状态, q1、q2、q3、q4、q5是过渡状态, q6表示最终状态。
X、0、C是减法用的变量,R、L表示左右。
问题 2:绘制一个图灵机,将两个数 m 和 n 相减,其中 m 大于 n。
脚步:
- 第1步。如果找到 0,则将所有 0 转换为 0 并向右走,然后将 C 转换为 C 并向右走
- 第2步。如果找到 X,则将所有 X 转换为 X 并向右走,或者如果找到 0,则将 0 转换为 X 并向左走,然后转到下一步,否则转到第 5 步
- 第 3 步。然后将所有 X 转换为 X 并向左走,然后将 C 转换为 C 并向左走
- 第四步。然后将所有 0 转换为 0 并向左走,然后将 B 转换为 B 并向右走,然后将 0 转换为 B 并向右走,重复整个过程
- 第 5 步。否则,如果 B 发现将 B 转换为 B 向左转,则将所有 X 转换为 B 向左转,然后将 C 转换为 B 向左转,然后停止机器。
这里, q0表示初始状态, q1、q2、q3、q4、q5是过渡状态, q6表示最终状态。
B、X、0、C是减法用的变量(m>n),R、L表示左右,B变量是输入符号。
参见 – 用于减法的图灵机 | 2套