You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建确定性单带图灵机:识别奇长度单词中间字符并拒偶长输入

构建定位a/b单词中间字符的确定性单带图灵机

没问题,我来帮你一步步搞定这个图灵机!核心思路是**「两端消去法」**:从字符串左端标记一个字符,再跳到右端标记一个,来回循环——直到剩下最后一个未被标记的字符(那就是中间字符),此时停机接受;如果循环到最后没有剩余字符(偶长度),直接拒绝停机。

状态与符号定义

状态说明

  • q0:初始状态,负责标记左端未处理的字符
  • q0_check:标记左端后,检查当前标记的字符是否是中间字符
  • q1:向右扫描,寻找右端未处理的字符
  • q2:找到右端空白后,回退定位右端未处理字符
  • q2_mark:标记右端字符后,向左扫描寻找左端已标记的字符
  • q3:找到左端标记后,定位下一个左端未处理字符
  • q4:拒绝状态(偶长度或空字符串时进入)
  • q5:接受状态(找到中间字符时进入)

符号说明

  • 输入符号:a, b, _(_代表空白符)
  • 标记符号:X(标记左端已处理的字符),Y(标记右端已处理的字符)

完整状态转移表

所有转移遵循格式:STATE, SYMBOL -> STATE, SYMBOL, DIRECTION(DIRECTION为l左移、r右移、s停留)

  • q0, a -> q0_check, X, r

  • q0, b -> q0_check, X, r

  • q0, _ -> q4, _, s

  • q0_check, a -> q1, a, r

  • q0_check, b -> q1, b, r

  • q0_check, Y -> q5, X, s

  • q0_check, _ -> q5, X, s

  • q1, a -> q1, a, r

  • q1, b -> q1, b, r

  • q1, X -> q1, X, r

  • q1, _ -> q2, _, l

  • q2, a -> q2_mark, Y, l

  • q2, b -> q2_mark, Y, l

  • q2, X -> q4, X, s

  • q2_mark, X -> q3, X, r

  • q2_mark, a -> q2_mark, a, l

  • q2_mark, b -> q2_mark, b, l

  • q2_mark, Y -> q2_mark, Y, l

  • q3, a -> q0, a, s

  • q3, b -> q0, b, s

  • q3, Y -> q4, Y, s

  • q3, _ -> q4, _, s

流程解释与示例

奇长度输入示例(aba)

  1. 初始状态q0遇到第一个a,标记为X,右移进入q0_check
  2. q0_check遇到b,进入q1持续右移,直到碰到空白符_
  3. 进入q2左移一步,碰到a,标记为Y,进入q2_mark持续左移,直到碰到X
  4. 进入q3右移一步,碰到b,回到q0标记为X,右移进入q0_check
  5. q0_check碰到Y,判定当前X(原b)是中间字符,进入q5停机接受

偶长度输入示例(ab)

  1. 初始状态q0遇到a,标记为X,右移进入q0_check
  2. q0_check遇到b,进入q1持续右移,碰到空白符_
  3. 进入q2左移一步,碰到b,标记为Y,进入q2_mark持续左移,碰到X
  4. 进入q3右移一步,碰到Y,判定为偶长度,进入q4停机拒绝

这个图灵机可以适配所有由a/b组成的输入,完美区分奇偶长度,准确定位奇长度单词的中间字符~

内容的提问来源于stack exchange,提问作者jippy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:53:46