【问题标题】:Python turing machine for 0^n1^n2^n0^n1^n2^n的Python图灵机
【发布时间】:2012-12-23 18:37:26
【问题描述】:

我得到了指令“创建一个图灵机来识别形式为 0^n1^n2^n 的字符串。这意味着如果字符串的形式正确,图灵机会在空白磁带上停止,而如果它的格式不正确,它停在非空白单元格上”。

我知道图灵机如何工作的基础知识,但不知道如何在 Python 中实现它。我在网上找到的任何示例似乎都非常复杂,包含多个类和所有内容。我认为这对我的应用程序来说不是完全必要或预期的。

我为这个问题找到了以下伪代码:

On input string w
   while there are unmarked 0s, do
      Mark the left most 0
      Scan right to reach the leftmost unmarked 1;
         if there is no such 1 then crash
      Mark the leftmost 1
      Scan right to reach the leftmost unmarked 2;
         if there is no such 2 then crash
      Mark the leftmost 2
   done
   Check to see that there are no unmarked 1s or 2s;
      if there are then crash
   accept

然而,在我看来,实现这个精确的伪代码并不会真正成为一台合法的图灵机。我会以错误的方式解决这个问题吗?任何指导表示赞赏。

【问题讨论】:

    标签: python turing-machines


    【解决方案1】:

    那个伪代码对我来说似乎是正确的,如果你向我们展示一个不太复杂的问题可以接受的例子可能会有所帮助,我不知道在 python 中的 TM 中究竟接受了什么。

    【讨论】:

    • 为了实现该代码,您将如何“标记”给定字符串中的项目?而且我不知道那时图灵机的“头部”或“磁带”将如何适应。
    • 只要将 3 视为“标记”字符。每当您想标记一个空格时,只需将其设置为 3。您甚至不需要知道标记下的内容,因此它应该可以正常工作。
    猜你喜欢
    • 2014-05-07
    • 1970-01-01
    • 2021-04-20
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多