规则
(q0, 1) -> (q0, 1, R)遇到 1 就继续向右扫描,直到找到输入尾部。
先动手
先动手拖动规则和步数,再回头看这些规则如何驱动纸带变化,理解会更直观。
互动实验
这是一台真实按规则推进的小型图灵机。你可以切换不同规则集,观察同一台机器如何因为规则不同而表现出完全不同的“算法行为”。
让机器走到输入末尾,再补上一个新的 1。
适合理解“扫描 -> 写入 -> 返回 -> 停机”的基本流程。
同一台机器只要换一套规则,就能从“观察”变成“改写输入”。
当前读到符号 1,将执行规则 (q0, 1) -> (q0, 1, R),含义是:遇到 1 就继续向右扫描,直到找到输入尾部。
规则
(q0, 1) -> (q0, 1, R)遇到 1 就继续向右扫描,直到找到输入尾部。
规则
(q0, _) -> (q1, 1, L)扫描到空格后在末尾补一个 1,并开始向左返回。
规则
(q1, 1) -> (q1, 1, L)回退状态下持续向左移动,直到触碰左边界。
规则
(q1, _) -> (halt, _, S)回到边界后停机,说明这一轮补写已经完成。
快速认识
图灵机是一种把“算法”抽象成读、写、移动和切换状态的最小计算模型。
理解主线
把纸带想成无限长的草稿纸,机器每次只看当前这一格。
它根据“现在看到的符号 + 当前状态”决定下一步写什么、往哪走、切到什么状态。
只要规则足够完整,这种逐步执行就能表达很复杂的计算过程。
核心公式
状态转移函数
机器看到当前状态 q 和当前符号 s 后,会决定写入什么、切到哪个状态、再往哪个方向移动。
符号含义
适用说明
运行规则
图灵机每一步都只做一件事:读当前格、按规则反应、移动读写头。
规则的完整格式通常可以写成:读取到什么 + 当前状态 -> 写入什么、向哪移动、切到什么状态。
如果某种“符号 + 状态”的组合没有对应规则,机器就会停下。
复制 1 并向右移动
(q0, 1) -> (q0, 1, R) 看到 1 时保持不变并继续向右扫描,常用于“跳过已有内容”或寻找边界。
遇到空格后写入结束标记
(q0, _) -> (q1, 1, L) 扫描到空白符号说明到达输入末尾,这时写入新符号并准备返回处理。
回退到起点继续下一轮
(q1, 1) -> (q1, 1, L) 在回退状态下持续向左移动,适合回到起始区或上一个关键位置。
满足条件后停机
(q1, _) -> (halt, _, S) 当读到边界且任务完成时进入停机状态,表示这段计算结束。
核心概念
它记录输入、中间过程和输出,让你看到计算并不是突然得到答案,而是逐格推进。
同一个符号在不同状态下会触发不同动作,这说明程序不仅看数据,也看自己处于哪一步。
算法最关键的不是机器长什么样,而是遇到某种情况时要怎么反应。
现实应用
它帮助我们判断一段程序到底能否被机械地执行,以及执行规则应如何被形式化。
很多“机器到底能不能做这件事”的问题,都以图灵机作为最基础的判断模型。
它是理解自动机、复杂度、语言理论和程序模型的共同起点。
继续探索