2009-10-07 68 views
1

我不太明白图灵机的东西的整个想法。如何模拟图灵机?

我目前的任务是制作一台忙碌的海狸图灵机。但我真的不明白的是它模拟输入。那么我会模拟什么样的输入?例如,它问我3个繁忙的海狸机在磁带上写了多少个1?我确信我需要写一个图灵机,但是一旦我有了它,我该怎么处理它?

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

+7

我相信有些读者不感兴趣,使精力去了解你的问题,写一个答案,因为你永远不会投票给任何人,从未接受任何答案你的问题之一... – KLE 2009-10-07 08:41:30

+2

我也认为,人们会发布答案,如果他们明白你实际上试图解决问题之前张贴在这里。 这听起来很像“嗨,请为我解决我的作业”... – reef 2009-10-07 08:47:28

+0

thx KLE,我接近看看这个问题;) – 2009-10-07 08:48:23

回答

1

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

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

+0

Ahem ...调用'ensureCapacity(number)'而不是'add(null)' – 2009-10-07 08:55:26

+0

不起作用 - 它只增长底层数组,但不调整大小字段。 – 2009-10-07 10:09:43