【问题标题】:Turing machine mod function图灵机模组功能
【发布时间】:2014-02-25 19:46:42
【问题描述】:

谁能解释我如何做图灵机:

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

【问题讨论】:

  • “最小复杂度 10”是什么意思?
  • @blubb 抱歉,最小时间复杂度
  • 你有“时间复杂度n”的定义吗?我不认为这是众所周知的。
  • @blubb 在俄语中是“с минимальной временной сложностью 10”。不能说这是什么意思
  • X 的最高位是什么?是X0还是X7?你将如何用纸和铅笔计算 x mod 3?

标签: turing-machines


【解决方案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

这足以让您入门吗?

【讨论】:

  • 它是3上更大但具有相同mod的数字。
  • 你写清楚。可能是我傻眼了。我还是完全不知道这台机器怎么弄((
  • 你知道什么机器?您可以将其添加到您的问题中吗?
  • 真的,没人。图灵机是我们首先研究的。但是因为基辅的革命取消了它不得不说的一个讲座,明天的实验室工作仍然要做(
  • @Anton:这会很困难。我可以解释一个图灵机,但我不知道你学了什么。俄语维基百科页面是here,英语是here(英语更好,但是是英语)。您熟悉状态机或流程图的概念吗?
【解决方案2】:

我做到了。

这是工作机器)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 2011-05-21
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多