【发布时间】:2018-10-24 14:07:09
【问题描述】:
我们被要求创建一个接受{0^(2^n); n>0} 的图灵机,这不是由 Michael Sipser 发布的普遍接受的。
相反,我们被要求为算法创建一个,如下所示:
- 在头的第一次通过时,图灵机将划掉一个零。
- 接下来,它将划掉另一个零。
- 接下来,它将划掉两个零。
- 接下来,四个。
它将以这样的方式继续,在每个通道中划掉与之前所有通道组合中划掉的数量一样多的零(1、1、2、4、8、16 等),直到没有零剩余,没有被划掉(接受)或没有零剩余,但有一些剩余要划掉(拒绝)。
现在我的问题显然源于图灵机不存储数据值这一事实。虽然图灵机可以用作计数器(枚举器),但它们不能存储计数的值并对其进行操作。我提出了几个无限长的、非确定性的图灵机,它们使用了这种算法,但没有一个是确定性的。我可以根据需要使用尽可能长的书写字母。
请不要问我,考虑到一种高效、简单的算法已经可用且广为人知,为什么要我创建这样一台无用的机器。老实说,我不能告诉你。
【问题讨论】:
-
欢迎来到 Stack Overflow!这个问题可能更适合Computer Science。
标签: algorithm computer-science dfa turing-machines non-deterministic