【问题标题】:How can I simulate a turing machine?如何模拟图灵机?
【发布时间】:2010-12-04 13:22:38
【问题描述】:

我不太了解图灵机的整个概念。

我目前的任务是制造一台繁忙的海狸图灵机。但我没有真正得到的是它模拟输入。那么我模拟什么样的输入呢?例如,它问我 3 州忙碌的海狸机器在磁带上写了多少个 1?我确定我需要写一个图灵机,但是一旦我有了它,我该怎么办?

我应该用什么字符串来模拟它?

【问题讨论】:

  • 我相信有些读者没有兴趣努力去理解你的问题并写一个答案,因为你从来没有投票给任何人,从来没有接受过任何一个问题的答案......
  • 我还认为,如果人们了解您在此处发布之前确实尝试过解决问题,他们会发布答案。这听起来很像“嘿,请帮我解决我的作业”......
  • thx KLE,我差点看这个问题了;)
  • 拜托我已经阅读并知道它是一个强大的机器,可以证明数字计算的不确定性。但是没有机器如何工作的例子?无论如何,我是新来的,不知道我应该接受人们的回答。请原谅我。:)谢谢。
  • 解决问题和阅读问题是两种不同的概念。如果你通过它,发布一些代码并提出可理解的问题,这里的人们会更加尊重你并花更多时间分析和回答你的问题。

标签: java turing-machines turing-complete


【解决方案1】:

您的第一步是更好地理解“图灵机的整个想法”。您可以尝试阅读它:

【讨论】:

    【解决方案2】:

    对于busy beaver场景,通常假设没有特殊输入,即图灵机的磁带最初是空的。当然,在运行期间,忙碌的海狸可能会写入磁带,然后再读取它所写入的内容。

    所以你必须模拟磁带。由于它的两端应该是无限的,我建议通过子类化 ArrayList 并覆盖 get()set() 方法来实现它,将正索引映射到偶数元素,将负索引映射到奇数元素(以及当访问列表当前大小之外的索引时,通过重复调用 add(null) 自动增加大小。

    【讨论】:

    • 咳咳……打电话给ensureCapacity(number)而不是add(null)
    • 不起作用 - 它只会增加底层数组,但不会调整大小字段。
    猜你喜欢
    • 2012-05-17
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多