图灵机mod功能

时间:2014-02-25 19:46:43

标签: turing-machines

任何人都可以解释一下如何使用图灵机进行以下操作:

Y = X mod 3,其中(X,Y)二进制数最小时间复杂度为10

enter image description here

2 个答案:

答案 0 :(得分:1)

好的,您了解算法,现在我们必须构建机器。

我们将从111010(58)开始,从左到右阅读,机头从左侧开始。有两种模式:向右扫描以查看其中的内容,并在重写时向左移动。

|
v
x111010m
abcdefgh

(我已经标记了a-h的位置,用于我们的谈话。)机器应该做什么?

在图灵机中,状态有几个规则,因此机器可以决定通过它看到的符号做什么。 A国的规则如下:
"如果我看到符号x,我将删除它并写下符号v,向左移动一步并进入状态B."
"如果我看到符号y,我将保持不受干扰,向右移动一步并进入状态D."
"如果我看到符号w,我将擦除它并写下符号z,向左移动一步进入状态A(保持在此状态)。"

一般情况下,它向右扫描,以发现数字是以11,100还是101开头。这涉及两种不同的状态。然后它向左移动,重写11-> xx,100-> xx1,101-> x10。这涉及几个州。

在111010的情况下,前几个动作将如下所示:
(a)在状态1中,读取x,保持不受干扰,向右移动,保持在状态1.(寻找1.)
(b)在状态1中,读取1,保持不受干扰,向右移动,进入状态2.(接下来会发生什么?)
(c)在状态2中,读取1,写入x ,向左移动,转到状态3.(必须将此符号重写为x,将前一个符号重写为x。)
(b)在状态3中,读取1,写入x ,向右移动,转到状态1.(再次寻找1)。

(如果你很聪明,你可以不用状态3,但让我们先让机器运转。)

所以我可以写一些这样的规则:

1 x x right 1
1 1 1 right 2
2 1 x left  3
3 1 x right 1

您必须编写足够的规则,机器总是知道该怎么做,如果您希望机器停止(是的!)必须有一条规则 - 或许多规则 - 像这样:

5 m m right halt

这足以让你入门吗?

答案 1 :(得分:0)

我做到了。

这是工作机器)

enter image description here