先决条件——图灵机
问题:画一个比较两个数字的图灵机。使用一元格式来表示数字。例如,4 表示为
4 = 1 1 1 1 or 0 0 0 0
让我们用一个来表示。
例子:
方法:
- 通过比较“1”的数量来比较两个数字。
- 通过将它们标记为“X”来比较“1”。
- 如果“0”的左边还剩下“1”,则第一个数字更大。
- 如果“0”的右侧还剩下“1”,则第二个数字更大。
- 如果两个“1”都完成,则两个数字相等。
脚步:
- Step-1:将 1 转换为 X 并向右移动并转到第 2 步。如果符号为 0,则忽略它并向右移动并转到第 6 步。
- 步骤 2:继续忽略 1 并向右移动。忽略 0 向右移动并转到第 3 步。
- 第 3 步:继续忽略 X 并向右移动。忽略 1 向左移动并转到第 4 步。如果找到 B 忽略它并向左移动并转到第 9 步。
- 第 4 步:继续忽略 X 并向左移动。忽略 0 向左移动并转到第 5 步。
- 第 5 步:继续忽略 1 并向左移动。忽略 X 向右移动并转到第 1 步。
- 第 6 步:继续忽略 X 并向右移动。如果找到 B 忽略它并向左移动并转到第 8 步。如果找到 1 忽略它并向右移动并转到第 7 步。
- 步骤 7:停止机器(A < B)
- 步骤 8:停止机器(A > B)
- 步骤 9:停止机器(A = B)
状态转移图:
- A < B 的比较器
- A = B 的比较器
- A > B 的比较器
- A < B、A = B、A > B 的通用比较器
这里, Q0表示初始状态, Q2、Q3、Q4、Q5表示过渡状态, (A < B)、(A = B) 和 (A > B)表示最终状态。 0、1是使用的变量,R、L表示左右。
解释:
- 使用 Q0,当找到 1 时,将其设为 X 并转到左侧并进入状态 Q1。如果找到 0,则向右移动到 Q5 状态。
- 在状态 Q1 上,忽略所有 1 并向右移动。如果找到 0,则忽略它并向右进入下一个状态 Q2。
- 在 Q2 中,忽略所有 X 并向右移动。如果找到 B,则停止执行,您将进入显示 A > B 的状态,如果找到 1,则使其 X 向左移动并进入 Q3。
- 在 Q3 状态下,忽略所有 X 并向左移动。如果找到 0,则忽略它向左移动到 Q4。
- 在 Q4 中,忽略所有 1 并向左移动。如果找到 X,则忽略它向右移动。
- 在 Q5 状态下,忽略所有 X 并向右移动。如果发现 1 忽略它向右移动并停止机器,则结果 A < B。如果 B 发现向左移动停止机器,则结果为 A = 乙